首页前端开发JavaScript前端常用的JavaScript操作(代码实例)

前端常用的JavaScript操作(代码实例)

时间2024-01-28 21:29:03发布访客分类JavaScript浏览664
导读:收集整理的这篇文章主要介绍了前端常用的JavaScript操作(代码实例),觉得挺不错的,现在分享给大家,也给大家做个参考。本篇文章给大家带来的内容是关于前端常用的JavaScript操作(代码实例),有一定的参考价值,有需要的朋友可以参考...
收集整理的这篇文章主要介绍了前端常用的JavaScript操作(代码实例),觉得挺不错的,现在分享给大家,也给大家做个参考。本篇文章给大家带来的内容是关于前端常用的JavaScript操作(代码实例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

1.删除字符串中指定的一段字符

例:删除"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){
}
    */

以上就是对的全部介绍,如果您想了解更多有关HTML视频教程,请关注PHP中文网。

以上就是前端常用的JavaScript操作(代码实例)的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

JavaScript操作

若转载请注明出处: 前端常用的JavaScript操作(代码实例)
本文地址: https://pptw.com/jishu/590181.html
bootstrap的常见面试题(总结) html如何设置超链接字体颜色?html设置超链接字体颜色的方法

游客 回复需填写必要信息