1务甥、js的基本數(shù)據(jù)類型
Number、String粒氧、Boolean越除、Null、Undefined
還有復(fù)雜數(shù)據(jù)類型:Object(Array外盯、Json等)
2摘盆、js有哪些內(nèi)置對象
Object是所有JS中所有對象的父對象
數(shù)據(jù)封裝類對象:Object、Array饱苟、Boolean孩擂、Number、String
其他對象:Function箱熬、Arguments类垦、Math、Date城须、RegExp蚤认、Error
3、js基本規(guī)范糕伐?
(1)不要在同一行聲明多個變量砰琢;
(2)請使用==或!==來比較true或false的值;
(3)使用對象字面量(json)替代new Array這種形式
(4)不要使用全局函數(shù)
(5)switch語句帶有default分支
(6)函數(shù)不應(yīng)該有時候有返回值赤炒,有時候沒有返回值
(7)for循環(huán)必須使用大括號
(8)if語句必須使用大括號
(9)for-in循環(huán)中變量氯析,應(yīng)使用var關(guān)鍵字明確限定作用域亏较,從而避免作用域污染
4莺褒、 eval是做什么的?
它的功能是把對應(yīng)的字符串解析成JS代碼并運行雪情;
應(yīng)該避免使用eval遵岩,不安全,非常耗性能(2次,一次解析成js語句尘执,一次執(zhí)行)舍哄。
由JSON字符串轉(zhuǎn)換為JSON對象的時候可以用eval,var obj =eval('('+ str +')')誊锭。
5表悬、DOM怎樣添加、移除丧靡、移動蟆沫、復(fù)制、創(chuàng)建和查找節(jié)點
// 創(chuàng)建新節(jié)點
createDocumentFragment() //創(chuàng)建一個DOM片段
createElement() //創(chuàng)建一個具體的元素
createTextNode() //創(chuàng)建一個文本節(jié)點
// 添加温治、移除饭庞、替換、插入
appendChild()
removeChild()
replaceChild()
insertBefore() //在已有的子節(jié)點前插入一個新的子節(jié)點
// 查找
getElementsByTagName() //通過標簽名稱
getElementsByName() //通過元素的Name屬性的值(IE容錯能力較強熬荆,會得到一個數(shù)組舟山,其中包括id等于name值的)
getElementById() //通過元素Id,唯一性
7卤恳、new操作符具體干了什么呢?
(1)創(chuàng)建一個空對象累盗,并且 this 變量引用該對象,同時還繼承了該函數(shù)的原型纬黎。
(2)屬性和方法被加入到 this 引用的對象中幅骄。
(3)新創(chuàng)建的對象由 this 所引用,并且最后隱式的返回 this 本今。
8拆座、JSON 的了解?
JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式冠息。它是基于JavaScript的一個子集挪凑。數(shù)據(jù)格式簡單, 易于讀寫, 占用帶寬小。
格式:采用鍵值對逛艰,例如:{'age':'12', 'name':'back'}
9躏碳、null和undefined區(qū)別?
null表示“無”散怖,轉(zhuǎn)為數(shù)值時為0菇绵;undefined是表示“無”的原始值,轉(zhuǎn)為數(shù)值時為NaN镇眷。
undefined:
(1)變量被聲明了咬最,但沒賦值,就是undefined欠动;
(2)調(diào)用函數(shù)時永乌,應(yīng)該提供的參數(shù)沒有提供惑申,該參數(shù)等于undefined;
(3)對象沒賦值的屬性翅雏,該屬性的值為undefined圈驼;
(4)函數(shù)沒有返回值時,默認返回undefined望几。
null:
(1)作為函數(shù)的參數(shù)绩脆,表示該函數(shù)的參數(shù)不是對象。
(2)作為對象原型鏈的終點橄抹。