JS - 内置函数扩展(字符串,数值,数组,对象)

本文详细介绍了JavaScript中的字符串扩展(includes、startsWith、endsWith、repeat),数值扩展(Number.isFinite、Number.MAX_VALUE、Number.isInteger、Number.parseInt、Math.trunc),数组扩展(Array.from、Array.of、find、findIndex)以及对象扩展(Object.is、Object.assign)的方法,通过实例展示了它们的用法和功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JS内置函数的扩展(字符串,数值,数组,对象)

1,字符串扩展:

  • includes : 是否包含字符串
  • startsWith : 是否以某个字符开头
  • endsWith : 是否以某个字符结尾
  • repeat : 重复字符串指定的次数

实现一下

    let str1 = "qwertyuiop";
    console.log(str1.includes("y"));// true
    console.log(str1.startsWith("qwer"));//true
    console.log(str1.endsWith("op"));//true
    console.log("*".repeat(20));//***************************
    

2,数值的扩展:

  • Number.isFinite : 判断是否是有限大
  • Number.MAX_VALUE : 数字最大值
  • Number.isInteger : 判断是否是整数
  • Number.parseInt : 将字符串转换为整型
  • Math.trunc : 向下取整 (会进行小数部分的四舍五入)

实现一下

    	console.log(Number.isFinite(999 ** 999));   //false 
        console.log(Number.isInteger(123.000000000000001));//true 15位数会自动四舍五入
        console.log(Number.isInteger(123.009000000000001));//false不是整数
        console.log(Number.MAX_VALUE);  // 1.7976931348623157e+308
        console.log(Number.parseInt("fa232"));//NaN
        console.log(Math.trunc(123123.34)); // 123123 向下取整
        console.log(Math.trunc(123123.999999999999));// 123124
        

3,数组的扩展:

  • Array.from:将伪数组对象或者可遍历的对象 转换成真数组
  • Array.of:将一系列的值转换为数组
  • find :找出第一个满足条件的元素
  • findIndex:找出第一个满足条件元素的索引
    实现一下
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <button>按钮一</button>
    <button>按钮二</button>
    <button>按钮三</button>
    <button>按钮四</button>
    <button>按钮五</button>
  </body>
  <script>
     ===============================Array.from()==============================
    // 真正的数组是可以用foreach方法的  
    let btns = document.querySelectorAll("button"); //[object NodeList]是真正的数组
    btns.forEach(function(item,index){
        console.log(index); 
       //打印成功 0 1 2 3 4 
    });

    // 真正的数组是可以用foreach方法的
    let btns1 = document.getElementsByTagName("button");// HTMLCollection(5) 不是真正的数组
    btns1.forEach(function (value, index) {
        console.log(index); 
        // 打印失败
        /*
        * 报错信息:Uncaught TypeError: btns1.forEach is not a function
        说明使用getElementsByTagName获取的是一个伪数组,并不是真正的数组 虽然看起看很像
        */
    });

    // 开始使用 Array.from() 
    let trueBtns = Array.from(btns1)
    console.log(Object.prototype.toString.call(trueBtns));// [object Array] - 已经变为真正的数组了
    =================================Array.of()=======================
 	 将一组数据转换为真数组 
    let arr1 = Array.of(11, 22, 333, 44, 55, 7);
    console.log(arr1);// [11, 22, 333, 44, 55, 7, 7]
	
	
	 ============================find()=====================================
    let arr3 = [67, 234, 2, 45, 5, 6];
    let findArr=arr3.find(function(a){
           return a==67;
        });
    console.log(findArr); // 67 ;没有符合元素,返回undefined;

	 ===================================findIndex()=============================
	findIndex()与find()的使用方法相同,只是当条件为true时findIndex()返回的是索引值,
	而find()返回的是元素。如果没有符合条件元素时findIndex()返回的是-1,而find()返回的是
	undefined。findIndex()当中的回调函数也是接收三个参数,与find()相同。
	代码如下:
	const bookArr=[
		    {
		        id:1,
		        bookName:"三国演义"
		    },
		    {
		        id:2,
		        bookName:"水浒传"
		    },
		    {
		        id:3,
		        bookName:"红楼梦"
		    },
		    {
		        id:4,
		        bookName:"西游记"
		    }
		];
		var i=bookArr.findIndex((value)=>value.id==4);
		console.log(i);// 3
		var i2=bookArr.findIndex((value)=>value.id==100);
		console.log(i2);// -1
  </script>
</html>

4,对象的扩展:

  • Object.is : 判断v1,v2数据是否完全相等
  • Object.assign :将源对象source的属性复制到新的目标target对象上
    实现一下
		===========================Object.is()========================
 		let obj1 = { name: 'Eric', age: 18 };
        let obj2 = { name: 'Eric', age: 18 };
        console.log(obj1 == obj2);          //false
        console.log(Object.is(obj1, obj2));//false
         // 因为两个对象的地址不一样所以不会相同
         
        let str1_ = 'hello';
        let str2_ = 'hello';
        let result2 = Object.is(str1_, str2_);
        console.log(result2);//true

        =========================== Object.assign========================
        将源对象的属性复制到新的目标对象上
		 // 此时还是一个空的对象
        let newObj={};
        Object.assign(newObj,obj3);
        // 此时已经有所有的属性了
        console.log(newObj);//{ name: 'Eric', age: 17, say: [Function: say] }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值