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 全等运算符认为不等 不等的是类型