1.用原生js,建立一個無序列表新增到body中,ul下包含5個li,每個li包含一個text型別元素,text元素內容可自定義;
<script type="text/javascript"> window.onload = function() { var ulNode = document.createElement("ul"); var bodyNode = document.getElementsByTagName("body"); bodyNode[0].appendChild(ulNode); for (var i = 0; i < 5; i++) { var liNode = document.createElement("li"); var textNode = document.createTextNode("我是文字節點"+i); liNode.appendChild(textNode); ulNode.appendChild(liNode); } } </script>
執行結果:
知識點:
(1)在原生js中,window.onload 當頁面載入的時候可以呼叫某些函式(http://www.jb51.net/article/43166.htm)
window.onload = function() { ... }
(2)建立新的節點:
document.createElement("div");// 定義新的div元素節點變數
(3)建立文字節點
document.createTextNode() ;//可建立文字節點
(4)向節點新增最後一個子節點
appendChild()
2.
(function(){ return typeof arguments; })();
參考答案:
arguments是物件,偽陣列有兩件事要注意這裡: 引數不是陣列,它是一個陣列一樣的物體,你可以使用方括號和整數索引的元素,但方法通常可在一個如推上不存在引數陣列 Array.prototype.slice.call(arguments); 轉成陣列 當然arguments即使是陣列,返回的依然是"object",因為陣列也是物件,附加:typeof 對型別的判斷 https://developer.mozilla.org/zh-CN/docs/JavaScript/Reference/Operators/typeof // "object"
3.
var f = function g(){ return 23; }; typeof g();
參考答案:
function g(){ return 23; }是函式表示式,事實上只是一個名字,不是一個函式宣告 函式實際上是繫結到變數f,不是g. 指定的識別符號在函式表示式雖然有其用途:堆疊跟蹤是清晰而不是充斥著無名的函式,你可以有一個匿名函式遞迴呼叫本身不使用argument.callee 附非常詳細的帖子函式表示式 http://kangax.github.io/nfe/ //會發生錯誤