主
题:转换:
2. 转换成数字:parseInt()和parseFloat()参数必须是字符串否则返回NaN
❑parseInt()->从第一个字符开始检索字符串直到已经不是数字
var iNum1 = parseInt(“1234blue”); //returns 1234
var iNum2 = parseInt(“0xA”); //returns 10有前导0x的默认以16进制转换
var iNum3 = parseInt(“22.5”); //returns 22
var iNum4 = parseInt(“blue”); //returns NaN
var i1 = parseInt(“010”); //returns 8有前导0的默认以八进制转换
var i2 = parseInt(“010”, 8); //returns 8
var i3 = parseInt(“010”, 10); //returns 10
❑parseFloat()类似parseInt的方式检索浮点数,不同点:字符串必须以十进制表示浮点数。
var fNum1 = parseFloat(“1234blue”); //returns 1234.0
var fNum2 = parseFloat(“0xA”); //returns NaN只能十进制
var fNum3 = parseFloat(“22.5”); //returns 22.5
var f4 = parseFloat(“22.34.5”); //returns 22.34第一个小数点有效
var fNum5 = parseFloat(“0908”); //returns 908十进制
var fNum6 = parseFloat(“blue”); //returns NaN
主题:强制类型转换:
❑ Boolean(value) –如果value是空字符串,数字0,unefined,null返回false,否则true
❑ Number(value) –类似parseInt和parseFloat,不过要转换整个字符串!
var s1 = String(null); //”null”
var oNull = null; var s2 = oNull.toString();//出错,未初始化
主题:引用类型:
1. 实例化:var o = new Object();没有参数时括号不是必需的,但是最好使用括号
2. Object类:
❑属性:
constructor对创建对象的函数的引用:
var date = new Date();
if(date.constructor==Date)alert(“it is a date”);//return “it is a date”
prototype对该对象的对象原型的引用(实现继承)
❑方法:
hasOwnProperty(property)判断对象是否具有某个特定的属性,参数用字符串指定
isPrototypeOf(object)判断对象是否为另一对象的原型
propertyIsEnumerable(String property) : Boolean属性是否可用for。。。in语句枚举
toString() : String返回原始字符串表示
valueOf() : Object返回最合适该对象的原始值实现从对象到原始值的转换
3. Boolean类:
var ofalse = new Boolean(false);
var bff = ofalse && true;// output true布尔表达式运算中对象被转换成true
尽量避免使用Boolean对象
4. Number类
❑方法:
valueof()返回原始值
toString(radix) : String返回字符串,radix(2~36)指定数制
toFixed([Number digits]) : String返回有digits个小数的字符串形式
toExponential([Number digits]) : String返回有digits个小数的科学计数法的字符串形式
toPrecision([Number precision]) : String返回最有意义的形式,precision指定小数位数
❑注意:toFixed,toExponential,toPrecision方法都会进行舍入操作,以便用正确的小数位数正确地表示一个数。尽量避免直接使用Number类的对象
5. String类
❑属性:
length : Number字符串长度
❑方法:
charAt(index) : String如果index越界返回空字符串
charCodeAt( index) : Number返回指定索引的字符代码
concat(String string2...stringN) : String返回新串,原串不变
indexOf(String searchValue, [String fromIndex]) : Number从字符串的开头(位置0)开始检索子串
lastIndexOf(String searchValue, [String fromIndex]) : Number从字符串的结尾开始检索子串
localeCompare(String target) : Number比较
slice(beginSlice, endSlice) : String取子串,参数为负数的时候表示从字符串最后开始
substring(Number indexA, [Number indexB]) : String取子串,参数为负数是做0处理,并且把两个参数中较小的做起始位
substr(Number start, Number length) : String取子串,参数为负数时从结尾开始
主题:运算符:
1.delete:删除自定义的对象属性,数组元素
2.void:对任何值都返回undefined
3.位运算符:
所有整数字面量都默认存储为有符号整数。只有用ECMAScript的位运算符才能创建无符号整数。
~按位非,结果为:数字求负再减一
&与,|或,^异或,<<左移,>>有符号右移,>>>无符号右移(对于负数将其看作无符号 数,通常都很大)
4. Boolean运算符
逻辑NOT(!):
逻辑AND运算符(&&)
如果第一个操作数未定义过,出错
否则如果第一个操作数是false,返回false
否则如果第一个操作数是null/undefined/NaN/0返回null/undefined/NaN/0
否则如果第二个操作数未定义,出错
否则返回第二个操作数
逻辑OR运算符(||)
如果第一个操作数未定义过,出错
否则如果第一个操作数是true,返回true
否则如果第二个操作数未定义过,出错
否则返回第一个操作数不在null/undefined/NaN/false/0中,返回第一个操作数
否则返回第二个操作数即第一个操作数是null/undefined/NaN/false/0时返回第二个操作数
5.乘性运算符
乘法运算符
如果两个运算符都是数字,正常运算
如果某个运算数是NaN,结果为NaN
Infinity*0结果为NaN
Infinity*0以外数字结果为Infinity,符号由第二个运算符的符号表示
Infinity*Infinity结果为Infinity
除法运算符(/)
如果运算数都是数字,执行常规的除法运算
如果某个运算数是NaN,结果为NaN。
Infinity被Infinity除,结果为NaN。
Infinity被任何数字除,结果为Infinity。
0除一个非无穷大的数字,结果为NaN。
Infinity被0以外的任何数字除,结果为Infinity或-Infinity,由第二个运算数的符号决定。
取模运算符(%)
如果运算数都是数字,执行常规的算术,返回除法运算得到的余数。
如果被除数是Infinity,或者除数是0,结果为NaN。
Infinity被Infinity除,结果为NaN。
如果除数是无穷大的数,结果为被除数。
如果被除数为0,结果为0。
5.加性运算符
加法运算符(+)
如果运算数都是数字,执行常规的算术
如果有一个运算数是字符串,则把另一个转换成字符串,返回连接后的字符串
某个运算数是NaN,结果为NaN。
Infinity加Infinity,结果为Infinity。
-Infinity加-Infinity,结果为-Infinity。
Infinity加-Infinity,结果为NaN。
+0加+0,结果为+0。
-0加+0,结果为+0。
-0加-0,结果为-0
减法运算符(-)
如果运算数都是数字,执行常规的算术
某个运算数是NaN,结果为NaN。
Infinity减Infinity,结果为NaN。
-Infinity减-Infinity,结果为NaN。
Infinity减-Infinity,结果为Infinity。
-Infinity减Infinity,结果为-Infinity。
+0减+0,结果为+0。
-0减-0,结果为+0。
-0减+0,结果为-0。
某个运算数不是数字,结果为NaN。
6.关系运算符(>,<,<=,>=)
如果两个都是字符串,按照其字符代码进行比较小写字母在大写字母之前
如果有一个数字,先把字符串转换成数字再比较
如果有一个是NaN返回false
7.等性运算符(==,!=,===,!==)
==,!=
如果一个运算数是Boolean值,将false转换为0,true转换为1
如果一个是字符串,一个是数字,把字符串转换成数字
如果一个是对象,一个是字符串,将对象转换成字符串
如果一个是对象,一个是数字,把对象转换成数字
null和undefined相等
null和undefined不做转换
如果有一个NaN,不相等
如果都是对象,比较两者的引用值,指向同一对象则相等
===,!==:不进行类型转换,直接进行比较
主题: 语句:
1. if语句,do-while语句,while语句
2. for语句:for(var i = 0;i < 10; i++){};alert(i);//output 10i在循环之外仍可以使用
3. for-in语句:用于枚举对象的属性,对于数组枚举的是索引!
4. 语句可以加标签
5. break,continue,支持标签
6. with语句-不要使用!
7. switch语句:switch可用于字符串,case情况可以使用变量
主题: 函数:
1. 无重载:
可以用同一个名字在同一个作用域中定义多个函数,但只有最后一个起作用
2. arguments对象(Function类的属性):模拟重载
3. Function类:函数是对象
Function构造函数:不要使用
var function_name = new Function(argument1, argument2,..,argumentN, function_body);最后一个参数是字符串形式的函数体,前面函数的参数
属性
length:函数定义是声明的参数个数
valueof和toString默认返回函数的源码
1. 转换成字符串:toString()方法
2. 转换成数字:parseInt()和parseFloat()参数必须是字符串否则返回NaN
❑parseInt()->从第一个字符开始检索字符串直到已经不是数字
var iNum1 = parseInt(“1234blue”); //returns 1234
var iNum2 = parseInt(“0xA”); //returns 10有前导0x的默认以16进制转换
var iNum3 = parseInt(“22.5”); //returns 22
var iNum4 = parseInt(“blue”); //returns NaN
var i1 = parseInt(“010”); //returns 8有前导0的默认以八进制转换
var i2 = parseInt(“010”, 8); //returns 8
var i3 = parseInt(“010”, 10); //returns 10
❑parseFloat()类似parseInt的方式检索浮点数,不同点:字符串必须以十进制表示浮点数。
var fNum1 = parseFloat(“1234blue”); //returns 1234.0
var fNum2 = parseFloat(“0xA”); //returns NaN只能十进制
var fNum3 = parseFloat(“22.5”); //returns 22.5
var f4 = parseFloat(“22.34.5”); //returns 22.34第一个小数点有效
var fNum5 = parseFloat(“0908”); //returns 908十进制
var fNum6 = parseFloat(“blue”); //returns NaN
主题:强制类型转换:
❑ Boolean(value) –如果value是空字符串,数字0,unefined,null返回false,否则true
❑ Number(value) –类似parseInt和parseFloat,不过要转换整个字符串!
Number(false) 0;
Number(true) 1
Number(undefined) NaN;
Number(null) 0;
Number(“5.5”) 5.5;
Number(“56”) 56;
Number(“5.6.7”) NaN;
Number(new Object()) NaN;
Number(100) 100
var s1 = String(null); //”null”
var oNull = null; var s2 = oNull.toString();//出错,未初始化
主题:引用类型:
1. 实例化:var o = new Object();没有参数时括号不是必需的,但是最好使用括号
2. Object类:
❑属性:
constructor对创建对象的函数的引用:
var date = new Date();
if(date.constructor==Date)alert(“it is a date”);//return “it is a date”
prototype对该对象的对象原型的引用(实现继承)
❑方法:
hasOwnProperty(property)判断对象是否具有某个特定的属性,参数用字符串指定
isPrototypeOf(object)判断对象是否为另一对象的原型
propertyIsEnumerable(String property) : Boolean属性是否可用for。。。in语句枚举
toString() : String返回原始字符串表示
valueOf() : Object返回最合适该对象的原始值实现从对象到原始值的转换
3. Boolean类:
var ofalse = new Boolean(false);
var bff = ofalse && true;// output true布尔表达式运算中对象被转换成true
尽量避免使用Boolean对象
4. Number类
❑方法:
valueof()返回原始值
toString(radix) : String返回字符串,radix(2~36)指定数制
toFixed([Number digits]) : String返回有digits个小数的字符串形式
toExponential([Number digits]) : String返回有digits个小数的科学计数法的字符串形式
toPrecision([Number precision]) : String返回最有意义的形式,precision指定小数位数
❑注意:toFixed,toExponential,toPrecision方法都会进行舍入操作,以便用正确的小数位数正确地表示一个数。尽量避免直接使用Number类的对象
5. String类
❑属性:
length : Number字符串长度
❑方法:
charAt(index) : String如果index越界返回空字符串
charCodeAt( index) : Number返回指定索引的字符代码
concat(String string2...stringN) : String返回新串,原串不变
indexOf(String searchValue, [String fromIndex]) : Number从字符串的开头(位置0)开始检索子串
lastIndexOf(String searchValue, [String fromIndex]) : Number从字符串的结尾开始检索子串
localeCompare(String target) : Number比较
slice(beginSlice, endSlice) : String取子串,参数为负数的时候表示从字符串最后开始
substring(Number indexA, [Number indexB]) : String取子串,参数为负数是做0处理,并且把两个参数中较小的做起始位
substr(Number start, Number length) : String取子串,参数为负数时从结尾开始
主题:运算符:
1.delete:删除自定义的对象属性,数组元素
2.void:对任何值都返回undefined
3.位运算符:
所有整数字面量都默认存储为有符号整数。只有用ECMAScript的位运算符才能创建无符号整数。
~按位非,结果为:数字求负再减一
&与,|或,^异或,<<左移,>>有符号右移,>>>无符号右移(对于负数将其看作无符号 数,通常都很大)
4. Boolean运算符
逻辑NOT(!):
如果运算数是对象,返回false;
如果运算数是数字0,返回true;
如果运算数是0以外的任何数字,返回false; 如果运算数是null,返回true;
如果运算数是NaN,返回true;
如果运算数是undefined,发生错误。
逻辑AND运算符(&&)
如果第一个操作数未定义过,出错
否则如果第一个操作数是false,返回false
否则如果第一个操作数是null/undefined/NaN/0返回null/undefined/NaN/0
否则如果第二个操作数未定义,出错
否则返回第二个操作数
逻辑OR运算符(||)
如果第一个操作数未定义过,出错
否则如果第一个操作数是true,返回true
否则如果第二个操作数未定义过,出错
否则返回第一个操作数不在null/undefined/NaN/false/0中,返回第一个操作数
否则返回第二个操作数即第一个操作数是null/undefined/NaN/false/0时返回第二个操作数
5.乘性运算符
乘法运算符
如果两个运算符都是数字,正常运算
如果某个运算数是NaN,结果为NaN
Infinity*0结果为NaN
Infinity*0以外数字结果为Infinity,符号由第二个运算符的符号表示
Infinity*Infinity结果为Infinity
除法运算符(/)
如果运算数都是数字,执行常规的除法运算
如果某个运算数是NaN,结果为NaN。
Infinity被Infinity除,结果为NaN。
Infinity被任何数字除,结果为Infinity。
0除一个非无穷大的数字,结果为NaN。
Infinity被0以外的任何数字除,结果为Infinity或-Infinity,由第二个运算数的符号决定。
取模运算符(%)
如果运算数都是数字,执行常规的算术,返回除法运算得到的余数。
如果被除数是Infinity,或者除数是0,结果为NaN。
Infinity被Infinity除,结果为NaN。
如果除数是无穷大的数,结果为被除数。
如果被除数为0,结果为0。
5.加性运算符
加法运算符(+)
如果运算数都是数字,执行常规的算术
如果有一个运算数是字符串,则把另一个转换成字符串,返回连接后的字符串
某个运算数是NaN,结果为NaN。
Infinity加Infinity,结果为Infinity。
-Infinity加-Infinity,结果为-Infinity。
Infinity加-Infinity,结果为NaN。
+0加+0,结果为+0。
-0加+0,结果为+0。
-0加-0,结果为-0
减法运算符(-)
如果运算数都是数字,执行常规的算术
某个运算数是NaN,结果为NaN。
Infinity减Infinity,结果为NaN。
-Infinity减-Infinity,结果为NaN。
Infinity减-Infinity,结果为Infinity。
-Infinity减Infinity,结果为-Infinity。
+0减+0,结果为+0。
-0减-0,结果为+0。
-0减+0,结果为-0。
某个运算数不是数字,结果为NaN。
6.关系运算符(>,<,<=,>=)
如果两个都是字符串,按照其字符代码进行比较小写字母在大写字母之前
如果有一个数字,先把字符串转换成数字再比较
如果有一个是NaN返回false
7.等性运算符(==,!=,===,!==)
==,!=
如果一个运算数是Boolean值,将false转换为0,true转换为1
如果一个是字符串,一个是数字,把字符串转换成数字
如果一个是对象,一个是字符串,将对象转换成字符串
如果一个是对象,一个是数字,把对象转换成数字
null和undefined相等
null和undefined不做转换
如果有一个NaN,不相等
如果都是对象,比较两者的引用值,指向同一对象则相等
===,!==:不进行类型转换,直接进行比较
主题: 语句:
1. if语句,do-while语句,while语句
2. for语句:for(var i = 0;i < 10; i++){};alert(i);//output 10i在循环之外仍可以使用
3. for-in语句:用于枚举对象的属性,对于数组枚举的是索引!
4. 语句可以加标签
5. break,continue,支持标签
6. with语句-不要使用!
7. switch语句:switch可用于字符串,case情况可以使用变量
主题: 函数:
1. 无重载:
可以用同一个名字在同一个作用域中定义多个函数,但只有最后一个起作用
2. arguments对象(Function类的属性):模拟重载
3. Function类:函数是对象
Function构造函数:不要使用
var function_name = new Function(argument1, argument2,..,argumentN, function_body);最后一个参数是字符串形式的函数体,前面函数的参数
属性
length:函数定义是声明的参数个数
valueof和toString默认返回函数的源码