JavaScript权威设计--JavaScript类型,值,变量(简要学习笔记三)

1.负号是一元求反运算
如果直接给数字直接量前面添加负号可以得到他们的负值
 
 
2.JavaScript中的运算超出了最大能表示的值不会报错,会显示Infinity。
超出最小也不报错,会显示-Infinity。
运算出的结果如果是个非数字的值得时候,用NaN表示。
 
3.字符串直接量拆分成数行
ECMAScript3中,字符串直接量必须下载一行中,而在ECMScript中,字符串直接量可以拆分成数行,每行必须以反斜线(\)介绍。
如:“two\lines”
      "one\     //三行写完一个字符串
       two\
       three"
 
4.JavaScript中夹杂html代码的时候建议使用各自独立的引号风格 。
 
5.不只有数组可以通过索引去访问,字符串也可以
如:
var a="hello";
a[0]    //"h"    (返回 string)
a.length   //5    (返回 number)
 
6.RegExp的直接量表示法:/^html/   //匹配以html开始的字符串
 
7.null与undefined
null是js的关键字。描述“空值”
undefined表示更深层的“空值”,表示变量没有初始化
 
8.var global=this;//定义一个引用全局对象的全局变量值
客户端JavaScript中,在其表示的浏览器窗口中的所有JavaScript中,window对象充当了全局对象。这个全局window对象有一个属性引用其自身,它可以代替this来引用全局对象。
 
9.对象的问题
var s="test";
s.b=4;
var a=s.b;    //a的值会是什么?
答案是:a的值是undefined
 
好,我们来说一下这个过程:
var s="test";    //创建一个字符串
s.b=4;    //给s设置一个属性为4(这时候会创建一个临时字符串对象,并给b属性赋值为4,赋值完成后立即销毁这个对象s)
var a=s.b;    //这时s这个对象已经不存在
 
你会问,为什么?
 
s是字符串既然不是对象,为什么他能点(.)的出来属性呢?因为js中只要引用了字符串s的属性,js就会将字符串值通过调用new String(s)的方式创建一个对象(或说转换成对象)。要清楚这个创建的一个对象是临时的,而且也不是s这个原本的字符串。但是我们看上去的时候却是好像是s点(.)出来的。s.b这种修改属性只是发生在临时对象身上,而这个临时的对象并未继续保留下来(也就是修改之后立即销毁)。
var s="test"; 
var S=new String(s);       //这是显式的创建s的对象
console.log(s==S)    //true  等于运算符任务两者相等 
console.log(s===S)    //false    全等运算符认为不等 不等的是类型

posted on 2015-09-08 22:26 qize 阅读(...) 评论(...) 编辑 收藏

导航

公告