ECMAScript的变量是松散类型的,表现为:javascript
使用var
操做符声明变量java
var variableName; //因为未初始化,变量值为undefined
当咱们声明一个变量但未初始化时,变量的默认值是undefined
windows
var variableName = value;
var name = "weixia"; age = 24; function sayName() { var name; alert(name); } sayName(); alert(name); alert(age);
上面代码打印:函数
undefined weixia
sayName
函数内部代码块定义一个同名局部变量name
,它具备局部做用域,生命周期从定义处开始,到右花括号结束。code
行1中声明的name
具备全局做用域,它会自动被归于windows
对象的命名空间。对象
行2age
是全局变量,具备全局做用域,它会自动被归于windows
对象的命名空间。生命周期
ECMAScript数据类型:ip
typeof是一个操做符,不是函数,它用于判断数据类型,返回值是字符串作用域
typeof 24; // "number" typeof("Hello"); // "string" typeof null; // "object"
需要注意的是,任何对象和null都返回"object"字符串
Undefined
类型,实际取值只有一个——undefined
当变量未初始化时,默认值为undefined
Null
类型表示空的对象引用,实际取值只有一个——null
一般用做要储存对象变量的初始值
Boolean
类型实际取值有两个:
true
false
其余数据类型能够转换为Boolean
类型,转换结果取决于待转换数据的数据类型和实际取值
数据类型 | 结果为true的实际取值 | 结果为false的实际取值 |
---|---|---|
Boolean | true | false |
String | 非空字符转 | 空字符串 |
Number | 任何非零数(包括无穷大) | 0或NaN |
Object | 非null对象 | null |
Undefined | undefined |
Number
类型的实际取值有:
Infinity
NaN
NaN的特色是:
NaN
NaN
与任何值都不相等,包括NaN
自己isNaN
函数对于任何不能被Number()
转换为数值的参数,返回true
Number()
函数
数据类型 | 结果 |
---|---|
Number | 简单的传入和返回 |
Null | 0 |
Undefined | NaN |
Boolean | 0或1 |
String | 空字符串返回0;知足数字格式的字符串返回对应的数字;其余状况返回NaN |
parseInt()
函数
专门用于将字符串解析为整数。它会尽量的将字符串(或第一个整数子序列)转换为整数
parseFolat()
函数
专门用于将字符串解析为浮点数。它会尽量的将字符串(或第一个浮点数子序列)转换为浮点数
Number
、Boolean
、Object
、String
的toString
方法能够将其自己转换为字符串。
String()
函数能够将任意类型转换为字符串,转换时有toString
方法的调用toString
方法,null
返回"null"
,undefined
返回"undefined"
经过new
操做符建立对象:
object = new Object()
Constructor
属性
保存用于建立当前对象的构造函数
hasOwnProperty(propertyName)
检定属性在当前实例对象中,而不是实例的原型中
propertyIsEnumerable(propertyName)
检定给定的属性是否能使用for-in语句
toString()
返回对象的字符串表示
valueof()
返回对象的字符串、数值或布尔值表示,一般与toString()
方法的返回值相同