Javascript数据类型分为 : 原始类型和对象类型(两个特殊原始值:null和undefined)
原始类型 : 数字,字符串,布尔值
对象类型 : 对象是属性的集合,每个属性都有"名/值"对构成
Tips :
1 数字 : 两个特殊值 Infinity无穷大,NaN非数字(0/0)
2 文本 : UTF-16编码,不可变
3 布尔值 : 任意js值可以转换为布尔值,下面转为false
undefined null 0 -0 NaN ""//空字符串
全局对象
全局属性 : undefined , Infinity和NaN
全局函数 : isNaN() , parseInt() 和 eval()
构造函数 : Date() , RegExp() , String() , Object() , Array()
全局对象 : Math , JSON
变量作用域
在函数体内,局部变量的作用域优于全局变量
var scope = "globle"; //声明一个全局变量 function checkscope(){var scope = "local"; //声明一个局部变量return scope; } checkscope(); //->local
全局作用域可以不用var语句,但声明局部变量的时候必须用,如果不用则声明的为全局变量
scope = "globle"; function checkscope(){scope = "local";myscope = "local";return [scope,myscope]; }checkscope(); // ->[local,local] scope; // ->local myscope; // ->local
函数作用域和声明提前
函数作用域 : 变量在声明他们的函数体以及这个函数的任意嵌套内部都是有定义的.
function test(o){for(var i=0;i<o;i++){}alert(i); //访问i }test(1); // ->1
声明提前 : 声明的所有变量都被提至函数顶部
var scope = "globle"; function f(){alert(scope); // ->undefinedvar scope = "local";alert(scope); // ->local }