JavaScript学习笔记·基本概念
本次笔记只摘录JavaScript和已学习语言不同点或是遗漏知识点。
1.数据类型
- Boolean,String,Number,Object,Undefined,Null
- Undefined值为Null的派生值 (Null==Undefined)为true
- Number类型使用了IEEE754格式来表示整数和浮点数。由于保存浮点数需要的内存空间是保存整数的两倍,ECMAScript会将浮点数转换为整数值。例如:
var floatNum1 = 1.; //小数点后没有数字,解析为1
var floatNum2 = 10.0; //整数,解析为10
- 浮点数最高精度是17位小数,但进行算数计算时精度远远不如整数,0.1+0.2≠0.3,会产生 舍入误差。这是使用基于IEEE754数值的浮点计算的通病。
- NaN(Not a Number)是一个特殊的数值。用于表示一个本来要返回数值的操作数未返回数值的情况(避免抛出错误)。
任何涉及NaN的操作都会返回NaN。
NaN与任何值都不相等包括它本身。
isNaN()函数接受任何类型的参数,函数用于判断这个参数是否“不是数值”
alert(isNaN("10")); //false,可以转换成数值10 alert(isNan("blue")); //true,不是数值
- 数值转换
Number()函数:
如果参数是对象,调用valueOf()方法,确定该方法返回值是否可以转换为数值。如果转换结果为NaN,则调用对象的toString()方法,再测试返回值。
例如:
var num = Number("Hello World!"); //NaN
parseInt()函数:
它会忽略字符串前面的空格,直到找到第一个非空格字符。如果第一个字符不是数字或者负号,parseInt()会返回NaN。如果第一个字符是数字字符,parseInt()会继续解析第二个字符,直到解析完所有字符或者遇到一个非数字字符。
例如:
var num = parseInt("1234blue"); //1234
- String类型,用双引号和单引号表示的字符串相同
- ECMAScript中字符串是不可变的,要改变某个变量保存的字符串,要先销毁原来的字符串。
2.操作符
- 全等操作符由3个等号(===)表示,它只在两个操作数未经转换就相等的情况下返回true,例如:
var result1 = ("55" == 55); //true,转换后相等
var result2 = ("55" === 55); //false,不同数据类型不相等
3.语句
- for-in语句
for-in语句是一种精准的迭代语句,可以用来枚举对象的属性
语法:for (property in expression) statement
如果表示要迭代的对象的变量值为null或undefined,for-in语句会抛出错误。
- label语句
使用label语句可以在代码中添加标签,以便将来使用。
语法: label: statement
例:
start: for (var i=0; i< count; i++) { alert(i); }
这个例子中定义的start标签可以在将来由break或continue语句引用。加标签的语句一般都要与for语句等循环语句混合食用。
- with语句
with语句的作用是将代码的作用域设置到一个特定的对象中。
语法: with (expression) statement;
定义with语句的目的主要是简化多次编写同一个对象的工作,例:
var qs = location.search.substring(1); var hostName = location.hostname; var url = location.href;
上面几行代码都包含location对象。如果使用with语句,可以把上面的代码改写如下所示:
with(location) { var qs = search.substring(1); var hostName = hostname; var url = href; }
由于大量使用with语句会导致性能下降,同时也会给调试代码造成困难,因此在开发大型应用程序时,不建议使用with语句。
4.函数
没有重载!!
如果在ECMAScript中定义了两个名字相同的函数,则后定义的函数有效。
上一篇: 【聚宽本地数据JQData】一行代码获取财务及估值数据
下一篇: ACCESS转SQL需要注意的问题