1趁窃、想要準(zhǔn)確判斷一個變量是不是數(shù)組類型,不能使用typeof arr瀑构,因為返回結(jié)果是object刨摩,應(yīng)該使用arr instanceof Array澡刹,根據(jù)返回結(jié)果是true還是false進行判斷罢浇。
2、使用reduce處理數(shù)組的時候攒岛,因為每次迭代的時候都需要使用上一次計算的結(jié)果胞锰,所以一定記得將每次計算的結(jié)果進行return胜蛉,否則計算是無效的
3.js中return false的意思是函數(shù)終止并返回false色乾,意思就是return false以后的代碼都不會執(zhí)行暖璧,如果聲明變量接收返回值,那變量就是false澎办;return true的意思是函數(shù)終止并返回true局蚀,意思就是return true以后的代碼都不會執(zhí)行,如果聲明變量接收返回值扶欣,那變量就是true
4料祠、JavaScript中return與return false區(qū)別:return 的返回的是undefined,而 return false 返回的就是false敛苇,多數(shù)情況下兩者的效果是一樣的枫攀,因為undefined等價于false塘匣,但如果軟件要求嚴(yán)格檢測返回值的類別(比如要求必須是布爾值true和false)忌卤,那就不能混用了
5、js中Math.max用法Math.max(value1,value2)笤闯,然后返回其中的最大值颗味,當(dāng)然了牺弹,比較的個數(shù)沒有限制张漂,這里只寫兩個
6、word-wrap與word-break的區(qū)別磺陡,以及無效情況:
(1)word-break:break-all 例如div寬400px币他,它的內(nèi)容就會到400px自動換行憔狞,如果該行末端有個英文單詞很長(congratulation等)瘾敢,它會把單詞截斷硝枉,變成該行末端為conra(congratulation的前端部分)妻味,下一行為tulation(conguatulation)的后端部分了欣福。
(2)word-wrap:break-word 例子與上面一樣拓劝,但區(qū)別就是它會把congratulation整個單詞看成一個整體,如果該行末端寬度不夠顯示整個單詞栖博,它會自動把整個單詞放到下一行仇让,而不會把單詞截斷掉的躺翻。還有就是如果單詞太長的話也會進行分割公你。
我遇到一個情況,就是我設(shè)置了:
word-break:break-all 或者word-wrap:break-word都無效迂尝,字符串不會自動換行垄开。
經(jīng)過查證粗俱,發(fā)現(xiàn)原因會有兩個:1说榆、word-wrap對行內(nèi)元素是沒有效果的;2虚吟、一般情況下寸认,元素?fù)碛心J(rèn)的white-space:normal(自動換行,不換行是white-space:nowrap)串慰,可能是元素中設(shè)置的white-space是norwrap導(dǎo)致偏塞,無法換行。所以需要white-space:normal;word-break:break-all;這樣問題就解決了邦鲫。white-space 對程序中的空白進行處理灸叼,默認(rèn)是normal (瀏覽器會對空白進行忽略);(3)對table 的td 標(biāo)簽下的元素設(shè)置word-wrap:word-break是沒有效果的神汹。
7古今、slice和splice區(qū)別:
const arr=[1,2,3,4,5,6,7];
const result=arr.slice(2,4);
console.log(arr);//[1,2,3,4,5,6,7]
console.log(result);//[3, 4]
const arr2=[7,6,5,4,3,2,1];
const result2=arr2.splice(2,4,100,200,300);
console.log(result2);//[5, 4, 3, 2]
console.log(arr2)//[7, 6, 100, 200, 300, 1]
slice表示截取屁魏,slice(start,end)不改變原數(shù)組,返回新數(shù)組捉腥。
splice表示刪除氓拼,splice(start,length,item),會改變原數(shù)組抵碟,從某個位置開始刪除多個元素桃漾,并可以插入新的元素。
8拟逮、設(shè)計圖片作為背景鋪滿屏幕:
body{
background-image: url(../img/map.png);
background-position: center center;
background-size: cover;
background-attachment: fixed;
}
9撬统、如何解決npm下載慢的問題:
(1)使用cnpm:使用阿里定制的 cnpm 命令行工具代替默認(rèn)的 npm,輸入下面代碼進行安裝:$ npm install -g cnpm --registry=https://registry.npm.taobao.org以后安裝插件只需要使用cnpm intall即可敦迄。
(2)仍然使用npm恋追,只進行換源:輸入以下命令:npm config set registry https://registry.npm.taobao.org 再輸入:npm config list可以看到,已經(jīng)換源了
10罚屋、elementUI中el-scrollbar的使用:
前端UI界面設(shè)計的時候經(jīng)常會出現(xiàn)滾動條几于,但是瀏覽器默認(rèn)的滾動條一般比較難看,不推薦使用沿后。elementUI中有一個隱藏的組件el-scrollbar沿彭,在官方的教程中并沒有出現(xiàn),但是在實際使用中比較不錯尖滚,這里記錄一下使用方法以及使用中遇到的坑喉刘。
(1)使用方法:將會出現(xiàn)滾動條的部分直接放進組件el-scrollbar即可,然后將標(biāo)簽的height屬性設(shè)置為100%即可漆弄。
(2)注意事項:設(shè)置完之后查看效果會發(fā)現(xiàn)出現(xiàn)一個橫向的滾動條睦裳,此時需要添加以下css樣式即可,但是一定要注意不要在scoped私有變量中進行添加撼唾,而是應(yīng)該在app.vue 或者公共的css中進行添加廉邑,否則是沒有效果的。
.el-scrollbar__wrap{
overflow-x: hidden;
}
11倒谷、angular中渲染對象數(shù)組:ng-repeat="value in item track by $index"
12蛛蒙、獲取表單 select域的選擇部分的文本
//HTML部分
<form name="formA">
<select name="a" size="1" id=”obj”>
<option value="a">1</option>
<option value="b">2</option>
<option value="c">3</option>
</select>
</form>
//js部分
const obj = document.getElementById('obj');
const result = obj.options[obj.selectedIndex].text;
console.log(result);
13、加號優(yōu)先級高于 三目運算渤愁。低于括號牵祟。所以以下代碼輸出define
//假設(shè)val已經(jīng)聲明,可定義為任何值
console.log('Value is ' + (val != '0') ? 'define' : 'undefine');
14、append() 和appendTo()方法在被選元素的結(jié)尾(仍然在內(nèi)部)插入指定內(nèi)容
15抖格、通過原生的js如何禁用id為 button1的按鈕button:
//方法1
document.getElementById("button1").disabled = true;
//方法2
document.getElementById("button1").setAttribute(“disabled”,”true”);
16诺苹、給網(wǎng)頁添加javascript的方式有:
1)使用script標(biāo)簽咕晋,將javascript代碼寫到<script></script>之間
2)添加外部javascript文件
3)使用行內(nèi)javascript
4)使用@import引入javascript文件(錯誤選項)
17、判斷obj對象是否具有val屬性:
var obj={}
……
obj.hasOwnProperty("val")
18收奔、準(zhǔn)備XMLHttpRequest對象時掌呜,在send()前需要調(diào)用open ()方法
19、angularjs1中服務(wù)的正確寫法是:ng-service
20坪哄、typeof Date.now() 的值是number站辉,原因:Date.now() 方法返回自1970年1月1日 00:00:00 UTC到當(dāng)前時間的毫秒數(shù)
21、如何規(guī)避javascript多人開發(fā)函數(shù)重名問題
1)可以通過命名規(guī)范损姜,比如根據(jù)不同的開發(fā)人員實現(xiàn)的功能饰剥,在函數(shù)名加前綴
2)每個開發(fā)人員都把自己的函數(shù)封裝到類中,然后調(diào)用的時候即使函數(shù)名相同摧阅,但是因為是要類.函數(shù)名來調(diào)用汰蓉,所以也減少了重復(fù)的可能性
22、Javascript內(nèi)置的可迭代對象:Array棒卷、Map顾孽、String,注意Object不是
23比规、在JavaScript中 false若厚,undefined,null蜒什,空字符串测秸,數(shù)字0 ,數(shù)字NaN被當(dāng)做假值
24灾常、== 和 ===的區(qū)別是霎冯,==會將兩邊的值進行隱式類型轉(zhuǎn)換,而 ===不會钞瀑。undefined和null轉(zhuǎn)換為Boolean類型后都為false沈撞,如果使用==會進行轉(zhuǎn)換,那么undefined和null相等啦雕什,如果使用===不會進行轉(zhuǎn)換缠俺,那么undefined和null不相等
25、瀏覽器端的JavaScript包含ECMAScript贷岸,DOM對象以及BOM對象
26壹士、JavaScript是一種動態(tài)類型,弱類型凰盔,基于原型墓卦,直譯式的腳本語言倦春。
27户敬、JavaScript語言不僅可以在瀏覽器環(huán)境運行落剪,也可以在node提供的服務(wù)器端的平臺運行
28、 var a=[]; a[0]=1; a[1]=2; a[2]=3; a[5]=4; 請問 a.length 的值是6
29尿庐、關(guān)于函數(shù)的幾種說法:
1)函數(shù)聲明語法定義:function sum(num1,num2){return num1+num2}
2)函數(shù)表達式定義函數(shù):1.var sum = function(num1,num2){return num1+num2};
3)var sum = new Function("num1","num2","return num1+num2");Function構(gòu)造函數(shù)可以接受任意數(shù)量的參數(shù)忠怖,但最后一個參數(shù)始終被看成函數(shù)體,注意函數(shù)表達式定義函數(shù)的方法與聲明其他變量時一樣需要加分號抄瑟。
//函數(shù)聲明
function sum(a,b){
return a+b
}
//函數(shù)表達式
var sum = function(a,b){
return a+b
}
30凡泣、數(shù)據(jù)類型轉(zhuǎn)換
1)沒有內(nèi)容就是undefined,這個就是false
2)0就是false,1是true
3)null跟undefined一樣,都是false
4)字符串里面有內(nèi)容的話才是true,沒有內(nèi)容就是false
5)NaN是一種數(shù)值類型,已經(jīng)是false了,只是為了讓程序繼續(xù)往下面走
其他解析: 數(shù)值只要不是0,都是true 對象object永遠(yuǎn)都是true
31、如果需要匹配包含文本的元素皮假,應(yīng)該使用contains()方法
32鞋拟、ES5中,forEach(), filter(), reduce(), every() 和some()都會跳過空位惹资,map()也會跳過空位贺纲,但會保留這個值,join()和toString()會將空位視為undefined褪测,而undefined和null會被處理成空字符串猴誊,ES6 中都會將空位當(dāng)做undefined
33、全局定義的函數(shù)和變量都是掛載到window對象上面的侮措,比如undefined是window的一個全局變量懈叹,所以undefined in window 的返回值是true
34、判斷對象是否具有某個屬性或者是數(shù)組是否具有某個索引值可以使用in操作符分扎,但是需要注意的是查看屬性必須是字符串類型的澄成,查看索引是數(shù)值類型
35、如果不給cookie設(shè)置過期時間畏吓,在瀏覽器會話結(jié)束時過期环揽。
36、在 javascript 中庵佣,用于阻止默認(rèn)事件的默認(rèn)操作的方法是preventDefault()
37歉胶、stopPropagation() 阻止事件冒泡。 這個事件不會阻止定義在元素上的其他事件巴粪。
38熟嫩、stopImmediatePropagation() 會徹底的阻止事件译柏, 在其之后的綁定在元素上的其他監(jiān)聽事件都不會觸發(fā)
39、preventDefault() 阻止事件的默認(rèn)動作
40、Number(null)返回0
41回论、IIFE(立即執(zhí)行函數(shù)表達式)中的this指向window
42、NOSCRIPT標(biāo)簽是用來定義在腳本未被執(zhí)行時的替代內(nèi)容偎血,例如
<body>
...
...
<script type="text/javascript">
<!--
document.write("Hello World!")
//-->
</script><noscript>Your browser does not support JavaScript!</noscript>...
...
</body>
43志群、angularjs1中使用指令,綁定監(jiān)聽是在link時芭届。
44储矩、'.'表示是當(dāng)前目錄感耙,'..'表示是上級目錄,'./'和'../'分別對應(yīng)于當(dāng)前目錄和上級目錄持隧。
45即硼、移動端開發(fā)過程中盡量避免使用浮動來進行頁面布局,建議多采用flex布局屡拨,否則會發(fā)生各種未知的問題只酥。