日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

js高级写法

發(fā)布時(shí)間:2023/12/1 编程问答 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js高级写法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


名稱(chēng)

一般寫(xiě)法優(yōu)化
取整(不四舍五入)

parseInt(a,10); //Before

Math.floor(a); //Before

a>>0; //Before

~~a; //After

a|0; //After

?

取整(四舍五入)

Math.round(a); //Before
num.toFixed(0)

a+.5|0; //After
未定義

undefined; //Before

void 0; //After, 快
0[0]; //After, 略慢
布爾值短寫(xiě)法

true; //Before

!0; //After
串連字符串''+a+b+c; //before''.concat(a, b, c);
字符串截取

str.charAt(0); //before

str[0] //after
獲取數(shù)組是否存在元素for循環(huán)[1, 2, 3].indexOf(2);

二、優(yōu)化嵌套的條件語(yǔ)句

可優(yōu)化大量的ifelse? switch語(yǔ)句

before:

//method1if (color) {if (color === 'black') {printBlackBackground();} else if (color === 'red') {printRedBackground();} else if (color === 'blue') {printBlueBackground();} else if (color === 'green') {printGreenBackground();} else {printYellowBackground();}} //method2switch(color) {case 'black':printBlackBackground();break;case 'red':printRedBackground();break;case 'blue':printBlueBackground();break;case 'green':printGreenBackground();break;default:printYellowBackground();} //method3switch(true) {case (typeof color === 'string' && color === 'black'):printBlackBackground();break;case (typeof color === 'string' && color === 'red'):printRedBackground();break;case (typeof color === 'string' && color === 'blue'):printBlueBackground();break;case (typeof color === 'string' && color === 'green'):printGreenBackground();break;case (typeof color === 'string' && color === 'yellow'):printYellowBackground();break;}

優(yōu)化后

//method4var colorObj = {'black': printBlackBackground,'red': printRedBackground,'blue': printBlueBackground,'green': printGreenBackground,'yellow': printYellowBackground};if (color in colorObj) {colorObj[color]();}

?

三、檢查某對(duì)象是否有某屬性

使用 hasOwnProperty和in

before:

var myObject = {name: '@tips_js'}; if (myObject.name) { }

after:

myObject.hasOwnProperty('name'); // true 'name' in myObject; // true myObject.hasOwnProperty('valueOf'); // false, valueOf 繼承自原型鏈'valueOf' in myObject; // true

?

四、更簡(jiǎn)單的使用indexOf實(shí)現(xiàn)contains功能

before:

var someText = 'javascript rules';if (someText.indexOf('javascript') !== -1) {}

after:

!!~someText.indexOf('tex'); // someText contains "tex" - true

?

五、將有l(wèi)ength屬性的對(duì)象轉(zhuǎn)化為數(shù)組

比如帶有l(wèi)ength屬性的自定義對(duì)象,NodeList,parameters等。

//自定義對(duì)象var myObj = {length: 3,0: 'a',1:'b',2:'c' };//NodeListvar nodeList = document.querySelectorAll('li');//argumentsfunction test(){if(arguments.length > 0) {} }

轉(zhuǎn)化:

//[].slice.call(obj) 或者Array.prototype.slice.call(obj); [].slice.call(nodeList)//es6的Array.from(obj) Array.from(nodeList);

?

六、獲取DOM元素在父類(lèi)中的索引

//html<ul><li></li><li οnclick="getIndex()"></li> </ul>//jsfunction getIndex() {var evt = window.event;var target = evt.target;return [].indexOf.call(document.querySelectorAll('li'), target);// 返回1 }

?

轉(zhuǎn)載于:https://www.cnblogs.com/xinyeblog/p/9376594.html

總結(jié)

以上是生活随笔為你收集整理的js高级写法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。