wxif 判断字符串相等_ES6:字符串、数组、对象的扩展
字符串的擴展
ES6中的字符串?dāng)U展,用得少,而且邏輯相對簡單。如下:
- includes(str):判斷是否包含指定的字符串
- startsWith(str):判斷是否以指定字符串開頭
- endsWith(str):判斷是否以指定字符串結(jié)尾
- repeat(count):重復(fù)指定次數(shù)
舉例如下:
let str = 'abcdefg';console.log(str.includes('a'));//trueconsole.log(str.includes('h'));//false//startsWith(str) : 判斷是否以指定字符串開頭console.log(str.startsWith('a'));//trueconsole.log(str.startsWith('d'));//false//endsWith(str) : 判斷是否以指定字符串結(jié)尾console.log(str.endsWith('g'));//trueconsole.log(str.endsWith('d'));//false//repeat(count) : 重復(fù)指定次數(shù)aconsole.log(str.repeat(5));打印結(jié)果:
Number 的擴展
- 二進制與八進制數(shù)值表示法: 二進制用0b, 八進制用0o。
舉例:
console.log(0b1010);//10console.log(0o56);//46- Number.isFinite(i):判斷是否為有限大的數(shù)。比如Infinity這種無窮大的數(shù),返回的就是false。
- Number.isNaN(i):判斷是否為NaN。
- Number.isInteger(i):判斷是否為整數(shù)。
- Number.parseInt(str):將字符串轉(zhuǎn)換為對應(yīng)的數(shù)值。
- Math.trunc(i):去除小數(shù)部分。
舉例:
//Number.isFinite(i) : 判斷是否是有限大的數(shù)console.log(Number.isFinite(NaN)); //falseconsole.log(Number.isFinite(5)); //trueconsole.log(Number.isFinite(Infinity)); //false//Number.isNaN(i) : 判斷是否是NaNconsole.log(Number.isNaN(NaN));//trueconsole.log(Number.isNaN(5));//falsse//Number.isInteger(i) : 判斷是否是整數(shù)console.log(Number.isInteger(5.23));//falseconsole.log(Number.isInteger(5.0));//trueconsole.log(Number.isInteger(5));//true//Number.parseInt(str) : 將字符串轉(zhuǎn)換為對應(yīng)的數(shù)值console.log(Number.parseInt('123abc'));//123console.log(Number.parseInt('a123abc'));//NaN// Math.trunc(i) : 直接去除小數(shù)部分console.log(Math.trunc(13.123));//13數(shù)組的擴展
下面提到的數(shù)組的幾個方法,更詳細(xì)的內(nèi)容,可以看《04-JavaScript基礎(chǔ)/17-數(shù)組的常見方法.md》。擴展1:Array.from()
Array.from(偽數(shù)組/可遍歷的對象)作用:將偽數(shù)組或可遍歷對象轉(zhuǎn)換為真數(shù)組。
擴展2:Array.of()
Array.of(value1, value2, value3)作用:將一系列值轉(zhuǎn)換成數(shù)組。
擴展3:find() 和 findIndex()
方法1:
find(function(item, index, arr){return true})作用:找出第一個滿足「指定條件返回true」的元素。
方法2:
findIndex(function(item, index, arr){return true})作用:找出第一個滿足「指定條件返回true」的元素的index。
對象的擴展
擴展1
Object.is(v1, v2)作用:判斷兩個數(shù)據(jù)是否完全相等。底層是通過字符串來判斷的。
我們先來看下面這兩行代碼的打印結(jié)果:
console.log(0 == -0);console.log(NaN == NaN);打印結(jié)果:
truefalse上方代碼中,第一行代碼的打印結(jié)果為true,這個很好理解。第二行代碼的打印結(jié)果為false,因為NaN和任何值都不相等。
但是,如果換成下面這種方式來比較:
console.log(Object.is(0, -0));console.log(Object.is(NaN, NaN));打印結(jié)果卻是:
falsetrue代碼解釋:還是剛剛說的那樣,Object.is(v1, v2)比較的是字符串是否相等。
擴展2(重要)
Object.assign(目標(biāo)對象, 源對象1, 源對象2...)作用: 將源對象的屬性追加到目標(biāo)對象上。如果對象里屬性名相同,會被覆蓋。
其實可以理解成:將多個對象合并為一個新的對象。
舉例:
let obj1 = { name: 'smyhvae', age: 26 };let obj2 = { city: 'shenzhen' };let obj3 = {};Object.assign(obj3, obj1, obj2);console.log(obj3);打印結(jié)果:
上圖顯示,成功將obj1和obj2的屬性復(fù)制給了obj3。
擴展3:__proto__屬性
舉例:
let obj1 = {name:'smyhvae'};let obj2 = {};obj2.__proto__ = obj1;console.log(obj1);console.log(obj2);console.log(obj2.name);打印結(jié)果:
上方代碼中,obj2本身是沒有屬性的,但是通過__proto__屬性和obj1產(chǎn)生關(guān)聯(lián),于是就可以獲得obj1里的屬性。
總結(jié)
以上是生活随笔為你收集整理的wxif 判断字符串相等_ES6:字符串、数组、对象的扩展的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python字符串逆序输出代码_一行代码
- 下一篇: miniui页面移动的时候透明_【H5】