Javascript知識匯總------js中容易被忽略的細節(持續更新)
阿新 • • 發佈:2018-04-03
bsp true 方式 efi 定義 沒有 快捷 快捷方式 ==
-
in運算符
語法:boolean “name” in Object 判斷對象是否具有某一個屬性
var myObject = {name:‘吳小碎‘}; console.log(‘name‘ in myObject); //true 返回值為true表示myObject中存在name屬性 console.log(‘age‘ in myObject); //false 返回值為false表示myObject中不存在name屬性
-
new運算符 和 直接量(字面量)
varobjONE = {}; //直接量(字面量)生成對象 var objTWO = new Object(); //new運算符生成對象
-
引用類型 和 值類型
值類型賦值不會改變原始數據 引用類型在內存中是一個,值改變會改變以前的數據
var num1 = ‘13‘; var num2 = num1; num2 = ‘23‘; console.log(num1) //13 改變值num2的值num1並未改變,證明num1與num2在空間分別占有自己的內存,是兩個獨立的個體 console.log(num2) //23 console.log(num1 == num2); //false 這裏是值引用比較,故只比較值是否相同 var obj1 = {name:‘吳小碎‘,age:18}; var obj2 = obj1; obj2.sex = ‘男‘ console.log(obj2); // {name: "吳小碎", age: 18, sex: "男"} console.log(obj1); // {name: "吳小碎", age: 18, sex: "男"} 當增加obj2屬性時,obj1隨之改變 console.log(obj1 == obj2); //true 引用類型公用一個內存,相當於obj2是obj1的桌面快捷方式,obj1和obj2指向同一內存路徑
-
delete
- 刪除數組中的一個元素
- 對象的屬性或者方法
- 刪除一個沒有用var 的變量聲明
var arr1 = [1,2,3,4] delete arr1[0] console.log(arr1); // [empty, 2, 3, 4] 長度不變,只是刪除其中的值 var obj = {name:‘吳小碎‘,age:18}; delete obj.name console.log(obj) //{age: 18} 刪掉鍵值對 var a1 = ‘test‘; delete a1; console.log(a1); //test 變量a1還存在,a1未被刪除 a2 = ‘test‘; delete a2; console.log(a2) //Uncaught ReferenceError: a2 is not defined 證明已經刪除變量a2
-
報錯處理方法
try{ 可能出現錯誤的代碼 } catch(e) { e->接收的錯誤信息 }finally{ 無論怎樣都會最後執行 }
try { //可能出現錯誤的代碼 //1. obj.name; //系統報錯信息->obj is not defined //2. //throw new Error(‘我是錯誤信息‘); //強行扔出報錯信息 } catch (error) { //如果出錯執行 error->try拋出的錯誤信息 console.log(error); //ReferenceError: a is not defined } finally { //無論怎樣都會最後執行 console.log(‘最終執行我了嗎?‘); //最終執行我了嗎? }
-
js執行: 預解析(函數,和var) , 一句一句執行
解析順序:scirpt代碼塊 -> 解析執行環境 -> var || function (function優先級高於var)
<script> console.log(msg);//與下方msg定義變量存在於兩個代碼塊故:Uncaught ReferenceError: msg is not defined </script> <script> var msg = ‘吳小碎‘ </script> <script> console.log(msg); //msg在上一個代碼快解析完成,所以打印出:吳小碎 console.log(msg1); //與msg1存在與同一個代碼塊,解析執行環境存在在一個script代碼塊內所以:undefined var msg1 = ‘吳小碎‘ </script>
-
表達式
凡是將數據和運算符等聯系起來有值的式子就是表達式
-
語句
表達式+分號
Javascript知識匯總------js中容易被忽略的細節(持續更新)