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()
方法的返回值相同