日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Js中的基本概念

發布時間:2025/3/8 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Js中的基本概念 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言:剛畢業的應屆生,學習前端時間并不長,昨天參加面試,一輪筆試,兩輪技術面試。尤其在技術面試的時候感覺到自己基礎知識還是搞的有些亂,也突然明白到了一個扎實的Js基礎對于之后的路是有多重要。準備把Js高級程序設計的重點知識從頭梳理一遍。特此記錄一下自己學習的一些自認為比較重要的筆記。看似最難走的路,可能卻是最快也是最穩的。

1.嚴格模式

是ECMAScript5引入的一個概念。目的是使Ecma3中的不確定行為得到處理,一些不安全的行為也會拋出錯誤。它的支持版本比較高,IE10+

2.標識符

就是函數、變量、屬性的名字。標識符不能用保留字和關鍵字,使用關鍵字會導致identitierExpected錯誤,保留字看特定引擎報錯

3.變量

Js變量是松散類型的,可以用來保存任何類型的數據。

如果變量定義在函數中,那么這個變量在函數退出后就會被銷毀。
e.g.

function test() {var msg = 'hi';}console.log(msg) // 報錯

檢查一個錯誤:
報錯message未定義,為什么呢?
答:因為沒執行啊

4.數據類型

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

  • Null : 就記住他叫空對象指針就行,所以typeof 是 Object。在定義一個暫時不用的對象變量時候,最好將這個變量賦值為null,體現出了它的概念特性,也區分了它和undefined的不同。
  • Boolean:if這種流控制語句,會自動將括號里的內容進行Boolean()操作
  • Number: NAN 表示應該返回數值的操作最后沒有返回數值,比如說2/'i',2/0不是NAN,是Infinity。第二點:NAN與任何值都不相等, 包括NAN。有一個函數isNaN(),這個函數的具體思路為:先看能不能轉化成數值(10,'10',Boolean),如果能則返回flase,不能的話返回true。理解number和parseInt的區別:parseInt('')是NAN,而Number是0;parseInt遇上非數字字符會停止,而Number直接NAN,比如小數點;
  • String:數值,布爾值,對象,和字符串都有toString()方法。只有number下的toString方法有第二個參數,表示轉化成幾進制后的值,其實有個String()方法更好一些,如果是null返回null,如果是undefined返回undefined,如果不是這兩個將默認使用toString()方法;另外一個小技巧,把某個值轉化為字符串直接用+""就可以了
  • Object:Object每個實例都存在一些屬性和方法:constructor,hasOwnproperty,toString …

5.操作符

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

  • 如果對于字符串進行操作,會返回NAN
  • s1 = +s1 ->相當于把s1轉化成數值型(前提看s1之前是什么類型,規則不同)
  • s1 = -s1 ->相當于把s1轉化成數值的同時變成了負值
  • 位操作符

  • 按位非(~)
    var num1 = 25;
    var num2 = ~num1
  • 按位或(|)
  • 按位與(&)
  • 按位異或(^)
  • 邏輯操作符:邏輯操作符都是短路操作,如果第一個操作能決定結果,就不執行第二個操作
  • 加減法操作符

    • 注意以下問題:"a:"+1+2 //應該輸出a12而不是a3
    • var result1 = 5 - "true" //4
    • Var result2 = NaN -1 //NaN
    • Var result3 = 3 - "" // 3
    • Var result4 = 3 - "2" // 1
  • 關系操作符:

    • 如果在關系操作符比較中,有一個值是數值,那么另一個值也會被強制轉換成數值,如:

      • Var result = ‘23’ < 3 //true var result = ’23’ < ‘3’ //false
    • 任何操作數與NaN比較都是false

      • Var result1 = NaN < 3 //false
      • Var result2 = NaN >= 3 //false
  • 相等操作符

    • ==和!=是先進行轉換再比較
    • ===和!==是不轉換直接進行比較
    • 所以由于相等(== !=)存在數據類型的轉換問題,為了保持代碼類型的嚴謹性最好用 ===,還有一個細節,如果用相等符號進行比較,雖然比較的過程中可能會進行類型的轉換,但不影響最終的變量類型e.g:
    var strEg = '1'; if(strEg == 1){ console.log(typeof strEg) // string } console.log(typeof strEg) // string

6.語句

1.label,continue和break
break是立即退出當前層的循環,continue是重新開始下一層的循環,開始下一層的循環,例子

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)或在那層強制執行下次循環(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語句
會導致性能下降,一般不用。為什么不能直接用對象代替呢?

3.switch語句

switch語句中的條件判斷是全等操作,沒有類型轉換的操作。

7.函數

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

這篇只是一些簡單的基礎知識點,之后會把這些細小知識點分別展開寫成文章

總結

以上是生活随笔為你收集整理的Js中的基本概念的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。