> 咕笛老師:雖然簡單,但是出現頻率巨高,是100%不能出錯的
>
5個簡單數據類型(基本數據類型)+ 1個復雜數據類型
* undefined
* number
* string
* null
* boolean
* object
* ES6 新增Symbol
重點說說這個symbol,因為面試官專門會挑這個來問。
它的最大特點是“獨一無二”,你用symbol聲明了兩個變量,他們永遠不相等!
~~~dart
// 沒有參數的情況
var s1 = Symbol();
var s2 = Symbol();
s1 === s2 // false
// 有參數的情況
var s1 = Symbol("foo");
var s2 = Symbol("foo");
s1 === s2 // false
~~~
那么這個symbol到底要在什么場景下用呢???
看下面這個例子:
我想定義一個圖形類型的對象,但其實是為了湊這個對象的key/value結構,才給每個對象屬性去賦了一個值叫“round1”啥的,對吧?
~~~javascript
var shapeType = {
round:'round1',
triangle:'triangle1',
rectangle:'rectangle1'
}
~~~
現在,我有一個方法,這個方法只需要判斷shapeType.round還是shapeType.triangle就夠了,不關心后面這個具體的值是什么,那我去單獨賦一個"round1"就是一個多余的事,但又不能不加。
這時,就可以用symbol了,省得去花腦子去取一個名字了。
~~~javascript
var shapeType = {
round:Symbol(),
triangle:Symbol(),
rectangle:Symbol()
}
~~~
- js面試題
- 說一下自己常用的es6的功能?
- 頁面渲染html的過程?
- 說一下事件代理?
- 說一下繼承的幾種方式及優缺點?
- 說一下閉包?
- 對JSONP的理解*
- 基本的數據類型有哪些?
- js程序題
- JS找字符串中出現最多的字符
- 數組去重怎么作?
- 變量提升的這道題你會嗎
- 用一段代碼思考this的指向問題
- 這些類型的typeof返回什么值?
- 怎樣添加、移除、移動、復制、創建和查找節點?
- css面試題
- css水平、垂直居中的寫法,請至少寫出4種
- 1rem、1em、1vh、1px各自代表的含義?
- 說一下盒模型?
- 清除浮動的幾種方式,及原理?
- b與strong的區別?
- img中的alt與title屬性?
- 瀏覽器兼容性
- IE6的BUG你都遇過哪些?怎么解決的?
- html面試題
- 對HTML結構語義化的理解?
- 前端工程化面試題
- webpack
- export和export default的區別?
- VueJs面試題
- 基礎
- 生命周期
- vue路由(vue-router)
- 狀態管理(vuex)
- axios
- vue-cli框架
- 前端架構面試題
- HTTP
- get、post的區別
- 你所知道的http的響應碼及含義?