標籤:
一、strict 模式 1、 ECMAScript5中引入了strict 模式(strict mode)的概念。本意是為javascript定義了一種不同的解析與執行模式。 2、 strict 模式下的不同: (1)、一些不確定行為將得到處理。 (2)、對某些不安全操作也會拋出異常。 要在指令碼中啟用strict 模式,就在頂端添加代碼:
use strict
3、strict 模式下,javascript的執行結果會有很大不同。 4、支援strict 模式的瀏覽器如下:
IE10+
Firefox 4+
Safari 5.1+
Opera 12+
Chrome
二、變數 1、 ECMAScript的變數都是鬆散類型,也就是可以用來儲存任何類型的資料,每個變數僅僅是一個用來儲存值的預留位置而已。
2、未經過初始化的變數,將自動儲存undefined。
3、變數的範圍: (1)、使用var操作符定義的變數將成為定義該變數的範圍中的局部變數。如果在函數中使用var定義一個變數,那麼這個變數在函數退出後就會銷毀。
function test(){
var message="h1";//局部變數
}
test();
console.log(message);//報錯
(2)、 變數message是在函數中使用var定義的,當函數被調用時,就會建立該變數並為其賦值。而後,這本變數又會被立刻銷毀
function test(){
message="h1";
}
test();
console.log(message);
//輸出“hi”
(3)、當忽略了var操作符時,導致message變成全域變數。這樣只要調用test()一次,這個變數就有了定義,可以在函數外部任何地方訪問。 (4)、雖然忽略var操作符可以使變數成為全域變數,但是這種方法不推薦使用。因為局部範圍中定義全域變數很難維護,有意的忽略var操作符,也會由於相應變數不會馬上就有定義而導致不必要的混亂。在strict 模式下,給未聲明的變數賦值會拋出ReferenceError錯誤。三、資料類型 1、在ECMAScript中有5種單一資料型別(基礎資料型別 (Elementary Data Type))
Undefined
Null
Boolean
Number
String
2、1種複雜資料類型
Object
//本質上是由一組無序名值對組成的
3、typefo操作符 (1)、 一種用來檢測VARIANT 資料型別的操作符
//對一個值使用typeof操作符可能返回以下某個字串
"undefined"//如果這個值未定義
"boolean"//如果這個值是布爾值
"string"//如果這個值是字串
"number"//如果這個值是數值
"object"//如果這個值是對象或者null
"function"//如果這個值是函數
var int1;
var int2=true;
var int3="sun";
var int4=1;
var int5=new Object();
int5.name="zhou";
int5.age=5;
var int6=function(){
document.write(你好);
};
console.log(typeof(int1));
console.log(typeof(int2));
console.log(typeof(int3));
console.log(typeof(int4));
console.log(typeof(int5));
console.log(typeof(int6));
- /*輸出為:
- "undefined" js19.html:17"boolean" "string" "number" "object" "function"
- */
(2)、typeof使用例子
var message="some string"
alert(typeof message);
alert(typeof (message));
alert(typeof 95);
typeof操作符的運算元可以是變數,可以是數值字面量。
typeof是一個操作符而不是函數,盡量用圓括弧使用。
來自為知筆記(Wiz)
javascript基本概念(一)