文档介绍:第一章
词法结构
js 区分大小写,而
html 不区分;直接量;标志符合保
Js 是用 Unicode 字符集编写的;
留字;分号可选,注意良好的编程****惯。
第二章 类型、值和变量
Js不区分整数值和浮点数值,lo ”
/pattern/
如: var x = [];
var y = {};
var squre = function(x){ return x*x;}
两种访问方式:
var o = {x:1,y:{z:3}};
;
o[“x” ]
是一种调用(或者执行)函数或方法的语法表示。
如: f(0)
(x,y,z)
()
创建一个对象并调用一个函数(构造函数)初始化新对象的属性 如: new object()
new point(2,3)
new object
(1)左值:表达式只能出现在赋值运算符的左侧。
Js 中变量,对象属性和数组元素都是左
值, ECMAScript 规范允许内置函数返回一个左值,但自定义的函数不能返回左值。
(2)“ +” 运算符:二元加法运算符,优先考虑为字符串,两侧都不是字符串时理解为数字。
对于不是原始值的操作数会先做类型转换。
对象到原始值的转换规则: 日期对象通过 toString()方法执行转换, 其他对象则通过 valueOF
()方法执行转换(如果能返回一个原始值) 。但大多数对象都不具备可用的 valueOf()方
法,则会通过 toString ()方法来转换。
(3)一元运算符
“ +” ,“ -” :根据需要把操作数转换为数字
“ ++ ” :在操作数之前(前增量)
,对操作数进行增量计算,并返回计算后的值。
在操作数之后(后增量) ,对操作时进行增量计算,但返回未做增量计算的值。
如: var i = 1, j = ++i;
//
i 和 j 的值都是 2
var I = I, j = i++
//
i=2 ,j=1
“ --” :类似上述。
(1)相等和不等。
“ =” :得到或赋值。
“ == ” :相等。
//
!=
!==
“ === ” :严格相等。
//
注意: NaN 和其他任何值都不相等。
(2)比较运算符
操作数只有是数字和字符串才能真正执行比较操作,不是会进行类型转换。
相比“ +” 运算符,字符运算符更偏爱数字,只有两个操作数都是字符串时才会进行字
符串的比较。
(3)in 运算符
希望左操作数是一个字符串或者可以转换为字符串,右操作数是一个对象。如果右侧 的对象拥有一个名为左操作数值的属性名,则返回 true。
注意: var point = {x:1, y:2}
”toString ” in point //true
toString in point // false
(4)instanceof 运算符
希望左操作数是一个对象,右操作数标识对象的类。如果左侧对象是右侧类的实例,则返回 true,否则 false。Js对象的类是通过初始化它们的构造函数来定义的, 则右操作数是
一个函数。
如:
var d = new Date();
//
true
d instrnceof Date;
d instrnceof Object;
//
true
d instrnceof Number;
//
false
原型链
假值: false
null
undefined
0 -0
NaN
则其他的值包括对象都是真值。
“ && :左操作数为真值时则返回右操作数的结果。
左操作数为假值时则返回左操作数的的结果,即不计算右操作数的值。
“ ||” :先计算左操作数的值,结果为真值则返回这个结果。否则返回右操作数结果。
“ !” :一元运算符,将操作数的布尔值求反。
“ =”
Data[i++] *=2;
Data[i++] =
Data[i++] * 2;
//
结果不一样
()
解释运行由
js 源代码组成的字符串,并产生一个值。
eval()是一个函数,但被当成运
算符对待。
只传入一个参数,如果参数不是字符串则直接返回这个值。是字符串则会当成 js 代码
进行编译,执行后将返回最