成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Js中的基本概念

ShevaKuilin / 2769人閱讀

摘要:嚴(yán)格模式是引入的一個(gè)概念。目的是使中的不確定行為得到處理,一些不安全的行為也會(huì)拋出錯(cuò)誤。它的支持版本比較高,標(biāo)識(shí)符就是函數(shù)變量屬性的名字。函數(shù)只能用于函數(shù)中,立即退出函數(shù)并返回值。

前言:剛畢業(yè)的應(yīng)屆生,學(xué)習(xí)前端時(shí)間并不長(zhǎng),昨天參加面試,一輪筆試,兩輪技術(shù)面試。尤其在技術(shù)面試的時(shí)候感覺(jué)到自己基礎(chǔ)知識(shí)還是搞的有些亂,也突然明白到了一個(gè)扎實(shí)的Js基礎(chǔ)對(duì)于之后的路是有多重要。準(zhǔn)備把Js高級(jí)程序設(shè)計(jì)的重點(diǎn)知識(shí)從頭梳理一遍。特此記錄一下自己學(xué)習(xí)的一些自認(rèn)為比較重要的筆記??此谱铍y走的路,可能卻是最快也是最穩(wěn)的。
1.嚴(yán)格模式
是ECMAScript5引入的一個(gè)概念。目的是使Ecma3中的不確定行為得到處理,一些不安全的行為也會(huì)拋出錯(cuò)誤。它的支持版本比較高,IE10+

2.標(biāo)識(shí)符
就是函數(shù)、變量、屬性的名字。標(biāo)識(shí)符不能用保留字和關(guān)鍵字,使用關(guān)鍵字會(huì)導(dǎo)致identitierExpected錯(cuò)誤,保留字看特定引擎報(bào)錯(cuò)
3.變量
Js變量是松散類型的,可以用來(lái)保存任何類型的數(shù)據(jù)。

如果變量定義在函數(shù)中,那么這個(gè)變量在函數(shù)退出后就會(huì)被銷毀。
e.g.

   function test() {
        var msg = "hi";
   }
   console.log(msg) // 報(bào)錯(cuò)

檢查一個(gè)錯(cuò)誤:
報(bào)錯(cuò)message未定義,為什么呢?
答:因?yàn)闆](méi)執(zhí)行啊

4.數(shù)據(jù)類型

ECMA中一共有5種簡(jiǎn)單數(shù)據(jù)類型(基本數(shù)據(jù)類型)數(shù)據(jù)類型:undefined null boolean string number,1種復(fù)雜數(shù)據(jù)類型:Object

Null : 就記住他叫空對(duì)象指針就行,所以typeof 是 Object。在定義一個(gè)暫時(shí)不用的對(duì)象變量時(shí)候,最好將這個(gè)變量賦值為null,體現(xiàn)出了它的概念特性,也區(qū)分了它和undefined的不同。

Boolean:if這種流控制語(yǔ)句,會(huì)自動(dòng)將括號(hào)里的內(nèi)容進(jìn)行Boolean()操作

Number: NAN 表示應(yīng)該返回?cái)?shù)值的操作最后沒(méi)有返回?cái)?shù)值,比如說(shuō)2/"i",2/0不是NAN,是Infinity。第二點(diǎn):NAN與任何值都不相等, 包括NAN。有一個(gè)函數(shù)isNaN(),這個(gè)函數(shù)的具體思路為:先看能不能轉(zhuǎn)化成數(shù)值(10,"10",Boolean),如果能則返回flase,不能的話返回true。理解number和parseInt的區(qū)別:parseInt("")是NAN,而Number是0;parseInt遇上非數(shù)字字符會(huì)停止,而Number直接NAN,比如小數(shù)點(diǎn)

String:數(shù)值,布爾值,對(duì)象,和字符串都有toString()方法。只有number下的toString方法有第二個(gè)參數(shù),表示轉(zhuǎn)化成幾進(jìn)制后的值,其實(shí)有個(gè)String()方法更好一些,如果是null返回null,如果是undefined返回undefined,如果不是這兩個(gè)將默認(rèn)使用toString()方法;另外一個(gè)小技巧,把某個(gè)值轉(zhuǎn)化為字符串直接用+""就可以了

Object:Object每個(gè)實(shí)例都存在一些屬性和方法:constructor,hasOwnproperty,toString …

5.操作符

一元操作符(++,--,+,-)

如果對(duì)于字符串進(jìn)行操作,會(huì)返回NAN

s1 = +s1 ->相當(dāng)于把s1轉(zhuǎn)化成數(shù)值型(前提看s1之前是什么類型,規(guī)則不同)

s1 = -s1 ->相當(dāng)于把s1轉(zhuǎn)化成數(shù)值的同時(shí)變成了負(fù)值

位操作符

按位非(~)
var num1 = 25;
var num2 = ~num1

按位或(|)

按位與(&)

按位異或(^)

邏輯操作符:邏輯操作符都是短路操作,如果第一個(gè)操作能決定結(jié)果,就不執(zhí)行第二個(gè)操作

加減法操作符

注意以下問(wèn)題:"a:"+1+2 //應(yīng)該輸出a12而不是a3

var result1 = 5 - "true" //4

Var result2 = NaN -1 //NaN

Var result3 = 3 - "" // 3

Var result4 = 3 - "2" // 1

關(guān)系操作符:

如果在關(guān)系操作符比較中,有一個(gè)值是數(shù)值,那么另一個(gè)值也會(huì)被強(qiáng)制轉(zhuǎn)換成數(shù)值,如:

Var result = ‘23’ < 3 //true var result = ’23’ < ‘3’ //false

任何操作數(shù)與NaN比較都是false

Var result1 = NaN < 3 //false

Var result2 = NaN >= 3 //false

相等操作符

==和!=是先進(jìn)行轉(zhuǎn)換再比較

===和!==是不轉(zhuǎn)換直接進(jìn)行比較

所以由于相等(== !=)存在數(shù)據(jù)類型的轉(zhuǎn)換問(wèn)題,為了保持代碼類型的嚴(yán)謹(jǐn)性最好用 ===,還有一個(gè)細(xì)節(jié),如果用相等符號(hào)進(jìn)行比較,雖然比較的過(guò)程中可能會(huì)進(jìn)行類型的轉(zhuǎn)換,但不影響最終的變量類型e.g:

var strEg = "1";
if(strEg == 1){
console.log(typeof strEg)  // string
}
console.log(typeof strEg)  // string

6.語(yǔ)句

1.label,continue和break
break是立即退出當(dāng)前層的循環(huán),continue是重新開(kāi)始下一層的循環(huán),開(kāi)始下一層的循環(huán),例子

var num = 0;
for(var i=0;i<10;i++) {
        for(var j=0;j<10;j++) {
        if(i == 5 && j == 5) {
            break; //TODO:95
            // continue; //99
        }
       num ++
    }
}

label和continue,break連用,可以起到在那層退出(break)或在那層強(qiáng)制執(zhí)行下次循環(huán)(continute)作用,例如

var num = 0;
Outermost:
for(var i=0;i<10;i++) {
        for(var j=0;j<10;j++) {
        if(i == 5 && j == 5) {
            break Outermost; 
        }
       num ++ // 55
    }
}

var num = 0;
Outermost:
for(var i=0;i<10;i++) {
        for(var j=0;j<10;j++) {
        if(i == 5 && j == 5) {
            continue Outermost; 
        }
       num ++ // 95
    }
}

2.with語(yǔ)句
會(huì)導(dǎo)致性能下降,一般不用。為什么不能直接用對(duì)象代替呢?

3.switch語(yǔ)句

switch語(yǔ)句中的條件判斷是全等操作,沒(méi)有類型轉(zhuǎn)換的操作。

7.函數(shù)

1.Return:只能用于函數(shù)中,立即退出函數(shù)并返回值。不能用在if,for的代碼塊中。如果return的值為空,則立即停止執(zhí)行函數(shù),并返回undefined
2.傳遞的參數(shù)和arguments并不是同一個(gè)內(nèi)存空間,只是他們的值是同步的,同時(shí)argument的長(zhǎng)度是由執(zhí)行時(shí)傳入的參數(shù)決定的,而不是定義時(shí)決定的。
3.沒(méi)有重載

這篇只是一些簡(jiǎn)單的基礎(chǔ)知識(shí)點(diǎn),之后會(huì)把這些細(xì)小知識(shí)點(diǎn)分別展開(kāi)寫(xiě)成文章

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/96482.html

相關(guān)文章

  • js基本概念

    JavaScript 中的數(shù)據(jù)類型 JavaScript 有 5 種簡(jiǎn)單數(shù)據(jù)類型:Undefined、Null、Boolean、Number、String 和 1 種復(fù)雜數(shù)據(jù)類型 Object 。 基本類型(值類型) Undefined Null Boolean Number String 復(fù)雜類型(引用類型) Object Array Date RegExp Function 基本包裝類...

    sherlock221 評(píng)論0 收藏0
  • JS高級(jí)入門教程

    摘要:解析首先簡(jiǎn)稱是由歐洲計(jì)算機(jī)制造商協(xié)會(huì)制定的標(biāo)準(zhǔn)化腳本程序設(shè)計(jì)語(yǔ)言。級(jí)在年月份成為的提議,由核心與兩個(gè)模塊組成。通過(guò)引入統(tǒng)一方式載入和保存文檔和文檔驗(yàn)證方法對(duì)進(jìn)行進(jìn)一步擴(kuò)展。其中表示的標(biāo)記位正好是低三位都是。但提案被拒絕了。 JS高級(jí)入門教程 目錄 本文章定位及介紹 JavaScript與ECMAScript的關(guān)系 DOM的本質(zhì)及DOM級(jí)介紹 JS代碼特性 基本類型與引用類型 JS的垃...

    zsy888 評(píng)論0 收藏0
  • 復(fù)習(xí)Javascript專題(一):基本概念部分

    摘要:一數(shù)據(jù)類型基本類型引用類型類型判斷返回結(jié)果未定義布爾值字符串?dāng)?shù)值對(duì)象或者函數(shù)拓展堆棧兩種數(shù)據(jù)結(jié)構(gòu)堆隊(duì)列優(yōu)先,先進(jìn)先出由操作系統(tǒng)自動(dòng)分配釋放,存放函數(shù)的參數(shù)值,局部變量的值等。 一、數(shù)據(jù)類型 基本類型:`Null Boolean String Undefined Number(NB SUN)` 引用類型:`Array Function Object` 類型判斷:typeof 返回結(jié)果...

    LiangJ 評(píng)論0 收藏0
  • Javascript的異步和回調(diào)

    摘要:異步本質(zhì)上應(yīng)該就是多線程語(yǔ)言的產(chǎn)物。如果是多線程的異步,假死的應(yīng)該是運(yùn)行方法的線程,而方法仍然會(huì)按預(yù)期打印出。當(dāng)然了,按我個(gè)人的理解,應(yīng)該說(shuō)是是的回調(diào)函數(shù)。 引子 每個(gè)故事都有由來(lái)。前兩天在看 gulp 的時(shí)候,看到了它有個(gè) promise 的玩意兒,然后的然后,這兩天就掉進(jìn)了 javascript 的異步和回調(diào)的坑里面去了。 其間搜索了 javascript promise,看到了...

    CarlBenjamin 評(píng)論0 收藏0
  • 33 個(gè) js 核心概念(二):數(shù)據(jù)類型

    摘要:舉個(gè)例子在上面的例子可以看到,我們聲明是一個(gè)數(shù)字,但是我們?cè)谥髮⒌闹涤指某闪俗址筒紶栔岛竺鏁?huì)講這些類型?;绢愋妥址硎疽粋€(gè)字符串,如。因此,我們可以寫(xiě)一個(gè)函數(shù),用來(lái)精確檢測(cè)類型。 showImg(https://segmentfault.com/img/remote/1460000017309509?w=850&h=572); 定義 1. 什么是數(shù)據(jù)類型? 數(shù)據(jù)類型,就是將...

    QiShare 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<