1. 變量提升:所有變量的申明語句,都會被提升到代碼的頭部。(先解析代碼,獲取所有申明的語句,再一行行執行;函數也會提升)
2. switch case語句執行的是嚴格相等運算`===`,不會進行類型轉換。
3. 多重循環中,`break`、`continue`不帶參數的話只針對最內層循環
4. 語句的前面可以加標簽,相當于定位符。通常與`break`、`continue`一起使用,跳出特定的循環
~~~
top:
for (var i = 0; i < 3; i++){
for (var j = 0; j < 3; j++){
if (i === 1 && j === 1) break top;
console.log('i=' + i + ', j=' + j);
}
}
~~~
也可用于跳出代碼塊{}
5. js數據類型:數值、字符串、undefined、null、布爾值、對象、(ES6中新增Symbol)
6. typeof檢測值的類型`typeof 123`
7. typeof null會被檢測成object
8. `null`表示一個空的對象,轉為數值時為0,`undefined`表示一個此處無定義的原始值,轉為數值時為NaN
9. 空數組[]和空對象{}對應的布爾值為true,而空字符串對應的布爾值為false
10. js內部數值都是通過64位的浮點數存儲`1 === 1.0`,浮點數不是精確值,涉及到小數計算要謹慎。
~~~
0.3 / 0.1
// 2.9999999999999996
~~~
11. 字符串轉數值`parseInt()`,一個個字符轉,遇到不能轉,返回轉好的
Number()遇到不能轉返回NaN
parseInt第二個參數填要轉成的進制
12. 字符串轉浮點數`parseFloat()`
13. 判斷布爾值`isFinite()`
14. `btoa()`:任意值轉為 Base64 編碼; `atob()`:Base64 編碼轉為原來的值
15. 查看對象屬性`Obejct,keys(obj)`
刪除對象屬性 `delete obj.p`
判斷屬性是否在對象/數組中`p in obj`
查看是否為自身的屬性`obj.hasOwnProperty('toString')`
遍歷對象的屬性
~~~
for (var i in obj) {
console.log('鍵名:', i);
console.log('鍵值:', obj[i]);
}
~~~
操作對象的多個屬性with
16. 返回函數名`name`
返回函數參數個數`length`
17. 閉包:定義在函數內部的函數
18. `eval`命令接受一個字符串作為參數,并將這個字符串當作語句執行。
19. 清空數組的方法:length設置為0
20. addEventListener和onclick的區別?
addEventListener可以添加多個監聽事件,多次觸發;onclick只觸發一次
- php
- 安全
- php7
- 特性
- 編譯安裝
- 源碼整體框架
- 基本變量
- thinkphp3.2.3
- thinkphp5.0
- thinkphp6.0
- laravel
- 配置
- 路由
- artisan控制臺
- eloquent
- tinker
- composer
- 加密解密
- 小知識點
- 數組
- string
- 代碼簡潔之道
- 編譯
- 語法糖
- lumen
- smarty
- 錯題集
- 算法及數據結構
- 線性表結構
- 插入排序
- 冒泡排序
- 數據庫
- mysql
- oracle
- PostgreSQL
- redis
- sqlserver
- 前端
- 備忘
- js
- nodejs
- vue
- css
- electron
- vue
- 語法糖
- colorui使用筆記
- 微信小程序
- 操作系統
- windows
- bat
- 快捷鍵
- linux
- sed
- 問題解決
- git
- docker
- docker-compose
- 正則表達式
- ps
- lua
- 協議相關
- 問題思索
- Golang
- 測試
- 讀取和寫入json配置文件
- 類
- 接口
- mod
- gin
- fyne
- 禪道二次開發
- 服務
- apache
- 漏洞配置
- http server優化
- nginx
- 安裝
- 面試題庫
- freeswitch