1.JavaScript由三个部分组成:ECMAScript(提供核心语言功能)、DOM(文档对象模型,提供访问和操作网页内容的方法和接口)、BOM(浏览器对象模型,提供与浏览器交互的方法和接口)
2.JavaScript概念:是一种专为与网页交互而设计的脚本语言
3.标识符命名规则:首字符必须是字母/下划线(_)/美元符号($),其余字符由字母/下划线(_)/美元符号($)/数字组成
4.ECMAScript基本数据类型:Undefined、Null、Boolean、Number、String
复杂数据类型:Object
5.typeof检测Object或者Null的数据类型会返回“object”,因为特殊值null会被认为是一个空的对象引用
Safari5、Chrome7版本之前的浏览器调用typeof检测正则表达式会返回“function”,其它浏览器返回“object”
6.alert(未初始化变量)会显示“undefined”;
alert(未声明变量) 会产生错误;
var message; //未初始化变量
//var age 未定义变量
alert(message); //"undefined"
alert(age); //产生错误
alert(typeof 未初始化变量) 返回“undefined”
alert(typeof 未声明变量) 返回“undefined”
alert(typeof message); //"undefined"
alert(typeof age); //"undefined"
因为实际上无论对哪种变量也不可能执行真正的操作
7.null值表示一个空对象指针,这也就是检测数据类型返回“object”的原因;
undefined派生至null值,所以null == undefined 为true;
有意初始化变量为对象,可以设置值为null,即空对象指针
8.Boolean类型的值区分大小写,True和False并不是其值,只是普通标识符
9.
var octalNum1 = 070; // 八进制的 56
var octalNum2 = 079; // 无效的八进制数值——解析为 79
var octalNum3 = 08; // 无效的八进制数值——解析为 8
var hexNum1 = 0xA; // 十六进制的 10
var hexNum2 = 0x1f; // 十六进制的 31
10.NaN 与任何值都不相等,包括 NaN 本身
alert(NaN == NaN); //false
isNaN()函数,不能被转换为数值的值都会导致这个函数返回 true
alert(isNaN(NaN)); //true
alert(isNaN(10)); //false( 10 是一个数值)
alert(isNaN("10")); //false(可以被转换成数值 10)
alert(isNaN("blue")); //true(不能转换成数值)
alert(isNaN(true)); //false(可以被转换成数值 1)
11.Number()、parseInt()规则:
如果第一个字符不是数字字符或者负号, parseInt()就会返回 NaN;
如果第一个字符是数字字符, parseInt()会继续解析第二个字符,直到解析完所有后续字符或者遇到了
一个非数字字符。
alert(isNaN(NaN)); //true
alert(isNaN(10)); //false( 10 是一个数值)
alert(isNaN("10")); //false(可以被转换成数值 10)
alert(isNaN("blue")); //true(不能转换成数值)
alert(isNaN(true)); //false(可以被转换成数值 1)
var num1 = parseInt("1234blue"); // 1234
var num2 = parseInt(""); // NaN
var num3 = parseInt("0xA"); // 10(十六进制数)
var num4 = parseInt(22.5); // 22
var num5 = parseInt("070"); // 56(八进制数)
var num6 = parseInt("70"); // 70(十进制数)
var num7 = parseInt("0xf"); // 15(十六进制数)
12.String()可以避免,null、undefined无法使用toString()方法转换成字符串的情况
发表回复