接觸JavaScript這門語言也就很長的時間了,但從來沒有系統(tǒng)的去了解這么語言。趁現(xiàn)在剛剛畢業(yè)以及某些原因無心工作的情況下去系統(tǒng)的了解一下這么語言,也想通過這么語言養(yǎng)成寫博客的習慣,因為我認為這是一件對程序員來說很神圣又很光榮的事情。
1.1背景
相信很多初學者都遺忘或混淆的就是JavaScript的官方命名:ECMAScript。2015年6月17日,ECMAScript 6發(fā)布正式版本,即ECMAScript 2015。
1.2語法
常規(guī)語法省略
重點強調:
1.原始值和對象:原始值包括布爾值、數(shù)字、字符串、null、和undefined。其他的值都是對象。兩者之間最主要的區(qū)別在于它們的比較方式:每個對象都有唯一的標識且只等于自己。
var obj1={};
var obj2={};
alert(obj1 === obj2);
//false
alert(obj1===obj1);
//true
var prim1=123;
var prim2=123;
alert(prim1===prim2);
//true
2.使用typeof和instanceof對值分類。
typeof
操作數(shù) | 結 果 |
undefined | 'undefined' |
null | object |
布爾值 | boolean |
數(shù)字 | number |
字符串 | string |
函數(shù) | function |
所有其他的常規(guī)值 | object |
引擎創(chuàng)建的值 | JS引擎可以被允許創(chuàng)建一些值,且typeof的結果可以返回任意字符串 |
3.布爾值:
假值:undefined,null,false,-0,NaN,''
二元邏輯運算符:JavaScript中的二元邏輯運算符是短路的。如果第一個運算數(shù)就是足以確定結果的話,則不會對第二個運算數(shù)做評估。與(&&):如果第一個運算數(shù)是假值,返回它?;颍▅|):如果第一個運算數(shù)是真值,返回它。
4.IIFE:
引入新的作用域。作用:去除閉包(函數(shù)以及它所連接的周圍作用域中的變量)造成的無意共享。
例:
var result=[];
for(var i=0;i<5;i++)
{
result.push(function(){return i;});//(1)
}
console.log(result[1]()); //5 (not 1)
console.log(result[3]()); //5 (not 3)
標記為(1)的這行返回值總是i的當前值,而并非函數(shù)被創(chuàng)建時的值。在循環(huán)結束之后,i的值為5,所以數(shù)組中所有的函數(shù)都返回這個數(shù)值。如果想要標記(1)這行的函數(shù)獲得當前i值的一個快照,就可以使用IIFE.
for(var i=0;i<5;i++)
{
(function (){
var i2=i;
result.push(function(){return i2});
}()
) ;
}
此上都是在整理過程中以前未注意或沒有了解到的部分知識,寫在此處做知識點的補充之用。
以上這篇JavaScript基礎重點(必看)就是小編分享給大家的全部內容了,希望能給大家一個參考