javascript 学习笔记
一: js数据类型
js有两类数据类型,1:原始类型;2对象类型。
原始类型包括5中:数字,字符串,布尔,nil,undifined。
nil和undefined分属不同的类型,而此两种类型比较特殊,都只有一个值,分别就是nil和undefined.
可以为除去nil和undefined的原始类型定义方法。因此js中无法拥有方法的值只有 nil和undefined。
除去这五个原始类型外,其余的都是对象类型了(包括函数,数组)。
二:js中的全局变量
不在任何函数中声明的变量都为全局变量。
在函数中声明的变量只在函数中可见,即为局部变量。
三:js中的数字
js中不区分浮点数和整数,和lua中一样。
直接用数字序列表示的十进制数据,以前缀 “0x”或“0X”开始的数字序列表示的是十六制数据。js默认不支持八进制的数据表示,但某些扩展可以支持八进制数据,以前缀“0”表示。
所以js中的数据最好不要以“0”开始。
浮点数写法包括了传统的实数写法和指数写法。指数写法是:实数后面跟e或E,再跟正负号,再跟整型表示的指数。表示的数据是前面的实数再乘以10的指数次幂。
比如: 6.23e2 表示的就是6.23*10*10,即623。
js的采用二进制浮点数表示法,对表示诸如1/10,1/100的小数有误差。1/2,1/4则能精确表示。
四:js中的数学函数
Math.round(x) 对x进行四舍五入求整。
Math.pow(x,y) 对x求y次幂。比如Math.pow(2,10),2的10次方,1024;Math.pow(4,1/2),为4的平方根即2;Math.pow(10,-1)为0.1。
五:js中的日期函数
var time = new Date(),表示当前时间。
time.getMonth(),返回月份,从 0 开始到11结束。
六:js中的字符串
js中的字符串都是不可变的。
也就是说string.toUpperCase()返回的是新的字符串。
七:布尔值
js中六个值可以转化为false,其余都转化为true
“”
0
-0
nil
undefined
NaN
八:对象
对象的值都是引用,对象的比较都是引用的比较,当他们引用同一个对象时,他们才相等。
九:属性访问表达式
分两种,一种是“.”加标示符的形式,一种是[expression]的形式。
标示符必须是合法的标示符,而使用[]则可以不是合法的标示符,比如可以包含空格和“,”等。
js会把expriession的结果转换成字符串的形式,所以a[1] = a["1"],这和lua不同(哎,负担啊,懂的语言越多,需要记得越多)
九:表达式
对象创建表达式:是 new 加一个函数调用表达式,比如:new Point(),如果没有参数则可以省略为new Point()
关系表达式: == 相等比较,进行类型转换;===恒等比较,不进行类型转换;
true转换成1,false转换成0。所以 true == 1为true,true == 20为false