学习YUI.Ext 第三天


Posted in Javascript onMarch 10, 2007

对于以前很多混淆不清的知识,有必要再梳理一下:就从最基础的变量开始说起。

1.。变量variable

      a.全局变量Global Variable 和 局部变量 Private Variable

     加var和不加var是有区别的 
      --》如果不用关键字var,声明一个变量,那么这个是全局变量,任何子函数都可以访问,就算是跳出花括号的地方,亦可被访问;
      --》如果使用关键字var,则从所在的“花括号{}”起,全体函数都可以访问该变量,如:

function foo(){
  i=8                    //Global Variable
  alert(i)
 }

function foo2(){
  var i=88 //在此花括号下都可访问变量i
  alert(i);
  child()
  function child(){alert(i)}
 } 
foo();foo2()
alert(i) //这里的i还是8

    值得注意是function是编译期的对象,必须执行或实例化才能在内存中分配这一变量。
    全局变量习惯以_开头;p.s全部变量最好慎用,你很知道这个变量在那里何时发生变化!
  -------》参见 js手册:
“尽管并不安全,但声明语句中忽略 var 关键字是合法的 JScript 语法。这时,JScript 解释器给予变量全局范围的可见度。当在过程级中声明一个变量时,它不能用于全局范围;这种情况下,变量声明必须用 var 关键字。”

   b.变量的数据类型 the types of variable

Jscript 有三种主要数据类型、两种复合数据类型和两种特殊数据类型。

主要(基本)数据类型是: 

字符串 
数值 
布尔 
复合(引用)数据类型是: 

对象 
数组 
特殊数据类型是: 

Null 
Undefined 
下面简述一下JavaScript中的各种对象类型:
    Native Object: JavaScript语言提供的不依赖于执行宿主的对象,其中一些是内建对象,如:Global、Math;一些是在脚本运行环境中创建来使用的,如:Array、Boolean、Date、Function、Number、Object、RegExp、Error。
    Build-in Object: JavaScript语言提供的不依赖于执行宿主的内建对象,如:Global、Math;内建对象都是Native Object。
    Host Object:JavaScript语言提供的任何依赖于宿主环境的对象,所有非Native Object的对象都是宿主对象,如:IE中的window,WScript中的wscript实例,任何用户创建的类。

****如何检查对象类型?******
   1.typeof()
      typeof 运算符把类型信息当作字符串返回。typeof 返回值有六种可能: "number," "string," "boolean," "object," "function," 和 "undefined."

    2.   val instanceof Array
    返回一个 Boolean 值,指出对象是否是特定类的一个实例。 
  例如用到检查 数组或日期类型的时候(事实上,任何类型都允许,见例),必须使用instance of + class name(不用引号),例:

function foo(){}
var f = new foo();
alert(f instanceof foo2) //false

3.constructor 
 constructor 的用法感觉跟instance的用法一样,只不过不返回boolean值

x = new String("Hi");
if (x.constructor == String)
      // 进行处理(条件为真)。

*******var i={}是什么类型?****
答案:object类型 等价于var i = new Object

Object对象是一切对象的载体,有点想父类吧

Object 对象很简单, 
它就只有两个property和两个method 
这两个property是: 
prototype 
constructor 
这两个function是: 
toString() 
valueOf() 

那么var obj = new MyObject()怎么文本化呢?其实也很简单的,obj的文本化定义如下:

 

 var obj = 
     {
         Properties1 : 1, Properties2 : '2', Properties3 : [3],
         Method1 : function(){ return this.Properties1 + this.Properties3[0];},
         Method2 : function(){ return this.Preperties2; }
     };

    类实例文本化定义的语法为,用一对"{}"表示类,也就说"{}"完全等价于"new Object()"。然后"{}"内按"key:value"组织属性和方法,key可以是任意[A-Za-z0-9_]的字符组合,甚至数字开头都是合法的@_@,value是任何的合法的文本化JavaScript数据,最后每个键值对用","来分隔就行了。
通常用于JSON交换数据。

*******undefined 的两种含义*****
1.undefined关键字 2.undefined属性
声明了变量,但没赋过值,是属于第一种的情况;
完全没有声明,就跑出一个变量参与运算,它的数据类型是第二种情况;
两个相同名字却不同含义,建议下一版本改名。

var declared;                         //声明变量。
if (declared == undefined)            //改为uninitialized没初始化 会更准确,js is loose language indeed!
  document.write("declared has not been given a value.");

if (typeOf(notDeclared) == "undefined")
  document.write("notDeclared has not been defined.");

Javascript 相关文章推荐
用javascript实现的图片马赛克后显示并切换加文字功能
Apr 21 Javascript
JavaScript中的原型链prototype介绍
Dec 30 Javascript
js如何准确获取当前页面url网址信息
Sep 13 Javascript
聊一聊JavaScript作用域和作用域链
May 03 Javascript
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
Dec 15 Javascript
原生js实现放大镜效果
Jan 11 Javascript
Angular2利用组件与指令实现图片轮播组件
Mar 27 Javascript
神级程序员JavaScript300行代码搞定汉字转拼音
May 20 Javascript
JavaScript静态作用域和动态作用域实例详解
Jun 17 Javascript
Vue商品控件与购物车联动效果的实例代码
Jul 21 Javascript
微信小程序图片自适应实现解析
Jan 21 Javascript
jQuery 淡入/淡出效果函数用法分析
May 19 jQuery
学习YUI.Ext 第二天
Mar 10 #Javascript
学习YUI.Ext基础第一天
Mar 10 #Javascript
JavaScript触发器详解
Mar 10 #Javascript
又一个图片自动缩小的JS代码
Mar 10 #Javascript
基础的prototype.js常用函数及其用法
Mar 10 #Javascript
优秀js开源框架-jQuery使用手册(1)
Mar 10 #Javascript
用JavaScript实现仿Windows关机效果
Mar 10 #Javascript
You might like
php daddslashes()和 saddslashes()有哪些区别分析
2012/10/26 PHP
php防注入及开发安全详细解析
2013/08/09 PHP
PHP基于ORM方式操作MySQL数据库实例
2017/06/21 PHP
JavaScript CSS菜单功能 改进版
2008/12/20 Javascript
Javascript学习笔记7 原型链的原理
2010/01/11 Javascript
为radio类型的INPUT添加客户端脚本(附加实现JS来禁用onClick事件思路代码)
2010/11/11 Javascript
js原型链原理看图说明
2012/07/07 Javascript
js中top/parent/frame概述及案例应用
2013/02/06 Javascript
IE网页js语法错误2行字符1、FF中正常的解决方法
2013/09/09 Javascript
jQuery实现HTML5 placeholder效果实例
2014/12/09 Javascript
jQuery中extend()和fn.extend()方法详解
2015/06/03 Javascript
JavaScript精炼之构造函数 Constructor及Constructor属性详解
2015/11/05 Javascript
JS创建对象几种不同方法详解
2016/03/01 Javascript
jQuery无刷新上传之uploadify3.1简单使用
2016/06/18 Javascript
jquery实现企业定位式导航效果
2018/01/01 jQuery
nodejs express配置自签名https服务器的方法
2018/05/22 NodeJs
浅析Proxy可以优化vue的数据监听机制问题及实现思路
2018/11/29 Javascript
jQuery实现数字自动增加或者减少的动画效果示例
2018/12/11 jQuery
vue 微信分享回调iOS和安卓回调出现错误的解决
2020/09/07 Javascript
[01:05:30]VP vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
[01:04]不如跳舞!DOTA2新英雄玛尔斯的欢乐日常
2019/03/11 DOTA
Python实现列表转换成字典数据结构的方法
2016/03/11 Python
Python实现简单的四则运算计算器
2016/11/02 Python
python组合无重复三位数的实例
2018/11/13 Python
pandas的相关系数与协方差实例
2019/12/27 Python
python画图常规设置方式
2020/03/05 Python
pycharm通过anaconda安装pyqt5的教程
2020/03/24 Python
零基础学Python之前需要学c语言吗
2020/07/21 Python
英国领先的瓷砖专家:Walls and Floors
2018/04/27 全球购物
大学生入党自我鉴定
2013/10/31 职场文书
党章学习思想汇报
2014/01/14 职场文书
财务部总监岗位职责
2014/03/12 职场文书
拓展策划方案
2014/06/03 职场文书
新农村建设标语
2014/06/24 职场文书
社区党建工作汇报材料
2014/08/14 职场文书
教师师德考核自我评价
2014/09/13 职场文书