91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

前端常用的JavaScript操作示例

發布時間:2021-02-23 11:17:09 來源:億速云 閱讀:126 作者:清風 欄目:web開發

這篇“前端常用的JavaScript操作示例”文章,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要參考一下,對于“前端常用的JavaScript操作示例”,小編整理了以下知識點,請大家跟著小編的步伐一步一步的慢慢理解,接下來就讓我們進入主題吧。

JavaScript的特點

1.JavaScript主要用來向HTML頁面添加交互行為。 2.JavaScript可以直接嵌入到HTML頁面,但寫成單獨的js文件有利于結構和行為的分離。 3.JavaScript具有跨平臺特性,在絕大多數瀏覽器的支持下,可以在多種平臺下運行。

例:刪除"10km"中的km

var str = "10km"

//方法一:
var res = str.replace('km', '')

//方法二:
var res = str.split('km').join('')
//join方法不傳參默認使用逗號作為分隔符
2.數組去重
var arr = [1, 2, 3, 1, 2]

//方法一:
var res = [...new Set(arr)]

//方法二:
var res = Array.from(new Set(arr))

//方法三:
var res = [];
for (var i in arr) {
	if (res.indexOf(arr[i] === -1) {
		res.push(arr[i])
	}
}

//方法四:
var res = []
arr.map((item, index) => {
	if (res.indexOf(item) === -1){
		res.push(item)
	}
})

附:Array.from()的用法:

Array.from(arr, mapfn,thisArg):用于將兩類可以把對象轉換為真正的數組。

  1. 類似數組的對象(必須有length屬性)

  2. 可遍歷的對象(部署了Iterator接口的,String,ES6新增的Map和Set)。

參數:第一個是數組,必傳;第二個是一個函數(類似map函數),對數組元素進行操作后再返回數組,可選;第三個是對于this關鍵字的指向,可選。

var obj1 = {
	0: 'a',
	1: 'b',
	2: 'c'
}
var arr1 = Array.from(obj1)
console.log(arr1) // []

/* 1. 類數組對象,具有length屬性,而普通對象是沒有length屬性的。*/
/* 2. 類數組對象的屬性名必須為非負整數,對象中的屬性名會被當做字符串處理。*/

var obj2 = { 
	0: 'a',
	1: 'b',
	2: 'c',
	length: 2
}
var arr2 = Array.from(obj2)
console.log(arr2) // ["a", "b"]

var obj3 = {
	0: 'a',
	1: 'b',
	2: 'c',
	length: 4
}
var arr3 = Array.from(obj3)
console.log(arr3) // ["a", "b", "c", undefined]

var obj4 = {
	0: 'a',
	1: 'b',
	2: 'c',
	length: 3
}
var arr4 = Array.from(obj4, item => item + 1)
console.log(arr4) // ["a1", "b1", "c1"]

var obj5 = {
	"1": "a",
	"0": "b",
	length: 2
}
var arr5 = Array.from(obj5)
console.log(arr5) // ["b", "a"]
3.將偽數組對象轉化為數組
var obj = {
	0: 'a',
	1: 'b',
	length: 2
}
//方法一:
Array.from(obj)

//方法二:
Array.prototype.slice.call(obj) 

//方法三:
Array.prototype.concat.apply([], obj)

//方法四:
Array.prototype.splice.call(obj, 0) // 返回被刪除的元素,原對象obj會被破壞掉
console.log(obj) // obj: {length: 0}

// 上述的Array.prototype 均可用[]代替
4.數組或對象的深拷貝
//方法一:
JSON.parse(JSON.stringify(obj))

//方法二:遞歸遍歷
function clone (obj) {
  var res = obj.constructor === Array ? [] : {}
  for (var i in obj) {
    res[i] = typeof obj[i] === 'object' ? clone(obj[i]) : obj[i] // 即obj[i]為數組或對象,繼續拷貝
  }
  return res
}

//附:數組淺拷貝
var arr = ['a', ['b', ['c']]]

//1.使用slice()
var res = arr.slice(0)
console.log(res) // ['a', ['b', ['c']]]
res[1][1] = 'b'
console.log(res) // ['a', ['b', ['b']]]
console.log(arr) // ['a', ['b', ['b']]]

//2.使用concat()
var arr = ['a', ['b', ['c']]]

var res = [].concat(arr)
res[1][1] = 'b'
console.log(res) // ['a', ['b', ['b']]]
console.log(arr) // ['a', ['b', ['b']]]

//Object.assign()也只能實現對象的淺拷貝,它只是一級屬性復制,比淺拷貝多深拷貝了一層
var obj = {a: "a", b: {c: "d"}}
var res = Object.assign({}, obj)
res.b.c= "e"
console.log(res) // {a: "a", b: {c: "e"}}
console.log(obj) // {a: "a", b: {c: "e"}}
5.沒有塊級作用域導致內層變量覆蓋外層變量。
var date = new Date().getDate();
function f(){
	console.log(date);
	if(false){
	    var date = 0;//變量提升
   }
}
f();//undefined
6.ES6中標簽模板的用法:
let a = 1;
let b = 2;
function tag(arr, value1, value2){
    console.log(arr); //["hello ", " world ", ""]
    console.log(value1); //3
    console.log(value2); //2
}
tag`hello ${a + b} world ${a * b}`;
/**
如果函數名后的模板字符串中沒有變量,則直接將其作為函數參數調用。
如果存在變量則先將模板字符串處理成多個參數,再調用函數。

處理規則:
1.默認該函數第一個參數為數組,該數組的成員是模板字符串中那些沒有變量替換的部分。
2.變量替換只發生在數組的第一個成員與第二個成員之間、第二個成員與第三個成員之間。
以此類推,故arr中第三個成員為"",原因是${a * b}的變量替換發生在第二個成員與第三個成員之間,
所以必須存在第三個成員。
3.函數的其他參數,都是模板字符串各個變量被替換后的值。

函數形如:
function tag(stringArr, ...value){}
*/

以上是“前端常用的JavaScript操作示例”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

白银市| 杨浦区| 迁西县| 高淳县| 阿拉尔市| 青河县| 无为县| 塔城市| 烟台市| 深水埗区| 翁源县| 新河县| 通河县| 自治县| 乌恰县| 喀喇沁旗| 濉溪县| 揭东县| 眉山市| 龙胜| 太保市| 黑龙江省| 江陵县| 五莲县| 来安县| 天长市| 收藏| 宝清县| 通道| 江门市| 哈巴河县| 梁平县| 沧源| 阿克陶县| 图木舒克市| 丰宁| 大英县| 文登市| 石泉县| 兴城市| 阿合奇县|