学习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 相关文章推荐
extjs 学习笔记 四 带分页的grid
Oct 20 Javascript
js实现页面打印功能实例代码(附去页眉页脚功能代码)
Dec 15 Javascript
25个优雅的jQuery Tooltip插件推荐
May 25 Javascript
3款实用的在线JS代码工具(国外)
Mar 15 Javascript
JQuery页面图片切换和新闻列表滚动效果的具体实现
Sep 26 Javascript
JSON+Jquery省市区三级联动
Jan 13 Javascript
深入理解javascript的getTime()方法
Feb 16 Javascript
jQuery实现简单的回到顶部totop功能示例
Oct 16 jQuery
bootstrap+jquery项目引入文件报错的解决方法
Jan 22 jQuery
AngularJs用户输入动态模板XSS攻击示例详解
Apr 21 Javascript
Auto.js自动收取自己和好友蚂蚁森林能量脚本
Jun 28 Javascript
Kettle中使用JavaScrip调用jar包对文件内容进行MD5加密的操作方法
Sep 04 Javascript
学习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 操作文件的一些FAQ总结
2009/02/12 PHP
PHP JSON格式数据交互实例代码详解
2011/01/13 PHP
php判断类是否存在函数class_exists用法分析
2014/11/14 PHP
PHP使用xmllint命令处理xml与html的方法
2014/12/15 PHP
js仿3366小游戏选字游戏
2016/04/14 Javascript
Bootstrap Paginator分页插件使用方法详解
2016/05/30 Javascript
canvas绘制一个常用的emoji表情
2017/03/30 Javascript
javascript中mouseenter与mouseover的异同
2017/06/06 Javascript
Angular.js自动化测试之protractor详解
2017/07/07 Javascript
浅谈对Angular中的生命周期钩子的理解
2017/07/31 Javascript
在 Typescript 中使用可被复用的 Vue Mixin功能
2018/04/17 Javascript
vue 项目地址去掉 #的方法
2018/10/20 Javascript
JS实现的Object数组去重功能示例【数组成员为Object对象】
2019/02/01 Javascript
vue 强制组件重新渲染(重置)的两种方案
2019/10/29 Javascript
uniapp与webview之间的相互传值的实现
2020/06/29 Javascript
[01:20:47]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第一场 1月19日
2021/03/11 DOTA
python 排序算法总结及实例详解
2016/09/28 Python
Python3编程实现获取阿里云ECS实例及监控的方法
2017/08/18 Python
深入浅出学习python装饰器
2017/09/29 Python
python使用xslt提取网页数据的方法
2018/02/23 Python
python 筛选数据集中列中value长度大于20的数据集方法
2018/06/14 Python
Pandas之groupby( )用法笔记小结
2019/07/23 Python
Python列表list常用内建函数实例小结
2019/10/22 Python
Python中如何将一个类方法变为多个方法
2019/12/30 Python
Python垃圾回收机制三种实现方法
2020/04/27 Python
Python字符串格式化常用手段及注意事项
2020/06/17 Python
Python列表推导式实现代码实例
2020/09/09 Python
HTML5移动端手机网站开发流程
2016/04/25 HTML / CSS
去加拿大的旅行和假期:Canadian Affair
2016/10/25 全球购物
迪卡侬印度官网:购买所有体育用品
2017/06/24 全球购物
香蕉共和国工厂店:Banana Republic Factory
2018/06/09 全球购物
西班牙购买行李箱和背包网站:Maletas Greenwich
2019/10/08 全球购物
亿阳信通股份有限公司C#笔试题
2016/12/06 面试题
三个Unix的命令面试题
2015/04/12 面试题
四年级数学教学反思
2014/02/02 职场文书
审计局班子四风对照检查材料思想汇报
2014/10/07 职场文书