首页 > 技术文章 > javascript 学习笔记

cocox 2015-01-20 20:14 原文

一: 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

 

推荐阅读