javascript
JavaScript练习笔记
JavaScript練習筆記
1、分析下段代碼輸入出結果是(B)
var a,b,c; 隱式類型轉換
a=”2”;
b=2;
c=a+b;
console.log(c);
A.4 B.22 C.20 D.2
自動類型 String() Number()
1. 字符串相加 轉成字符串 再拼接
2. 四則運算 1+b 都是字值 直接計算 3+字符串
3. !運算 自動轉換成布爾值 字符串 數值 true
2、分析下段 代碼輸入出結果是(B)
var x,y;
x=10;
y=x++;
console.log(y);
A.9 B.10 C.11 D.12
前 先計算再賦值;后 相反
3、分析下段代碼輸入出結果是(D) //D這里true被轉為1
var num;
num=5+true;
console.log(num);
A.true B.false C.5 D.6
類型轉換 布爾值轉換成true->1
4、分析下段代碼輸入出結果是(B)
var arr = [2,3,4,5,6];
var sum = 0;
for(var i=1;i<arr.length;i++){
? sum+=arr[i]
}
console.log(sum);
A.20 B.18 C.14 D.12
5、數組的擴展中,不屬于用于數組遍歷的函數的是:(D)
A、keys( )
B、entries( )
C、values( )
D、find( )
var arr = [“aaa”,”bbb”,”ccc”]; //1.keys == 索引 0 1 2 var k = arr.keys() //迭代器 Console.log(k.next().value) 0 Console.log(k.next().value) 1 Console.log(k.next().value) 2 //2.entries 鍵值對 key-value var entry = arr.entries(); Console.log(entry.next().value) [0,’aaa’] Console.log(entry.next().value[0]) aaa //3.values value var values = arr.values(); Console.log(values.next().value) aaa Console.log(values.next().value) bbb Console.log(values.next().value) ccc//find var res = arr.find(k => k === “bbb”); Console.log(res) bbb6、以下代碼運行的結果是(B) //B自執行函數的作用域是window, 所以當b=20即修改了全局的b
var a = b = 10;
(function(){ //自執行函數
? var a =b=20 //基本功 b=20;var a = b
})();
console.log(b); //全局
A.10 B.20 C.報錯 D.undefined
7、在JS中,‘1555’+3的運行結果是(C)
A.1558 B.1555+3 C.15553 D.報錯
8、以下代碼運行后彈出的結果是(B)
var a = 888;
++a;
alert(a++);
A.888 B.889 C.890 D.891
9、用javascript實現打開一個新窗口,地址為index.html,正確的方法是(A)
A.window.open(“index.html”,””,””); //瀏覽器dom bom (瀏覽器對象模型) 單應用頁面 div
B.window.open(””,“index.html”,””);
C.window.open(””,””,“index.html”);
D.window.open(“”,””,””);
10、[1,2,3,4].join(“0”).split("")的執行結果是(C)
A."1,2,3,4"
B.[1,2,3,4]
C.[“1”,“0”,“2”,“0”,“3”,“0”,“4”]
D."1,0,2,0,3,0,4"
11、以下ECMAScript變量命名格式正確的是(A) 這里考的變量命名,不能以保留字、- 、數字開頭,了解下
A._125dollor B.1207A C.-dollor D.this
12、下面不屬于ECMAScript規范的范圍的是:(C) //C ECMA不制定DOM規范,主要是針對JS語言規范定制
A、數據類型
B、語法
C、DOM事件
D、內置對象和函數的標準庫
13、在javascript程序中加入注釋,方法有:(AB)
A、//注釋內容
B、/*注釋內容/
C、/*注釋內容
D、/*注釋內容
14、數組方法中哪個說法是錯的(C ) //unshift是頭部添加,其它3個是正確的
A、push()尾部添加
B、pop()尾部刪除
C、unshift()尾部添加
D、shift()頭部刪除
解釋題
解釋:
1、”==”和“===”的不同
答案:“==”表示等于,左邊等于右邊;“===”表示恒等。
console.log(1=='1')//隱式類型轉換 console.log(1==='1')//無類型轉換2、函數聲明與函數表達式的區別
答案:函數表達式 var fun = function(){} 2種聲明方式 函數聲明方式存在變量提升,表達式沒有提升,即表達式的要先定義再調用。
3、AJAX執行原理
XMLHttpRequest 特點:請求方式,回調結果
4、分析代碼的執行結果并描述原因:
var a = 10; function f1(){ //函數里也有變量提升初始化a=b=c=undefinedvar b = 2 * a;var a = 20;var c = a+1;console.log(b); //nan:not a numberconsole.log(c); } f1()答案:b=20,c=21.
改:nan,21,這是涉及變量提升,即函數f1中會先初始化a為undefined,再a*2就為nan, 再對a賦值。
5、根據當前目錄結構在頁面動態展示:
//多層級的數據結構 3for(錯了) //遞歸 自己調用自己 Function Fun(){If(滿足條件){Fun();//自己調用自己 死循環 沒有終止條件} }Function Fun(){If(){ //如果有child并且child成都大于0Fun();//自己調用自己 死循環 沒有終止條件} }/// var data = [{name:'AAA',child:[{name:'a1',child:[{name:'a1-1'},{name:'a1-2'}]},{name:'a2'},{name:'a3',child:[{name:'a3-1'},{name:'a3-2',child:[{name:'a3-2-1'},{name:'a3-2-2'}]}]}]},{name:'BBB',child:[{name:'b1'},{name:'b2'},{name:'b3'}]},{name:'CCC',child:[{name:'c1'},{name:'c2'},{name:'c3'}]} ];//是用遞歸的方式實現,因為數據的層次是不確定的 //遞歸實現 function loading(data){ //遞歸裝載所有數據并通過ul li展示var html = "<ul>";data.forEach(item => {html += "<li>"+item.name+"</li>"//繼續添加childif(item.child && item.child.length > 0){html += loading(item.child)}});html += "</ul>";return html; //所有的節點ul li字符串 } var res = loading(data); document.getElementById("tree").innerHTML = res;總結
以上是生活随笔為你收集整理的JavaScript练习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端---JavaScript基础1
- 下一篇: 前端---JavaScript基础2