第三章---一.内建对象---Math,String与Date

本文详细介绍了JavaScript中的Math对象,包括常量、数学运算和三角函数等,并展示了如何进行取整、求平方根和随机数生成。同时,文章还探讨了String对象的方法,如字符串长度、查找、替换和转换等操作,以及日期时间的基本使用。
摘要由CSDN通过智能技术生成

Math对象

数学方法 Math

Math.PI π

弧度=Math.PI/180*角度;
角度=弧度/Math.PI/180;

开平方

 Math.SQRT1_2   根号2分之一
    Math.SQRT2    根号2

三角函数

Math.sin()
Math.cos()
Math.tan()

取整

 Math.floor();//向下取整
 Math.ceil();//向上取整
 Math.round();//四舍五入
 Math.abs();//取绝对值
//====负数的取整
    
console.log(Math.round(-2.6));  -3+0.4  -3+0
console.log(Math.round(-2.5));  -3+0.5  -3+1=-2
console.log(Math.round(-2.4));  -3+0.6  -3+1=-2

最大最小值 Math.max(); Math.min();

  console.log(Math.max(3,7,2,6,2))
  console.log(Math.min(3,7,2,6,2))
//=======数组的最大值最小值**强记
 var arr=[1,3,2,1,4,6,2,7];
        console.log(Math.max.apply(null,arr));
        console.log(Math.min.apply(null,arr));

Math.pow();//求幂

//====有pow与位运算两种方法求幂
//====位运算速度快但是只能31次以下的幂。pow速度慢但是次数没有限制
 console.log(Math.pow(2,32))
 console.log(Math.pow(10,2))
 //===========位运算的求幂===================
 console.log(1<<3);  //2的3次幂  左移位运算符
 console.log(1<<30);//不能求2的31次幂以上 超出最大值限制

Math.sqrt();//求平方根立方根

 console.log(Math.sqrt(9)); //求平方根
 console.log(Math.pow(8,1/3));//求立方根

Math.random() 随机数 0-1之间的所有小数

 console.log(Math.random()*10) 0-10之间的所有数
 console.log(Math.floor(Math.random()*10));//0-9
 console.log(Math.ceil(Math.random()*10));//1-10
 console.log(Math.round(Math.random()*10));//0-10
 
 console.log(Math.floor(Math.random()*5)+5); //5-10
 
 //====10-20之间的随机数
 function random(min,max){
    return Math.floor(Math.random()*(max-min))+min;
}
 console.log(random(10,20))

随机颜色的五种方法 *****(面试题)

function randomColor(){
            var str="rgba(";
            for(var i=0;i<3;i++){
                str+=Math.floor(Math.random()*256)+","
            }
            str+=Math.random().toFixed(2);
            str+=")";
            return str;
        }

        function randomColor(a,r,g,b){
            if(a===undefined)a=1
            else if(a<0) a=Math.random().toFixed(2);
            var str="rgba(";
            for(var i=1;i<4;i++){
                str+= (arguments[i]===undefined ? Math.floor(Math.random()*256): (arguments[i]>255 ? 255 : arguments[i]))+","
            }
            str+=a;
            str+=")";
            return str;
        }


        function randomColor(){
            return Array(6).fill(1).reduce(function(v){
                return v+Math.floor(Math.random()*16).toString(16);
            },"#")
        }


        function randomColor(){
            return "#"+Array(6).fill(1).map(function(item){
                return Math.floor(Math.random()*16).toString(16);
            }).join("");
        }

        function randomColor(){
           var str="#";
           for(var i=0;i<6;i++){
               str+=Math.floor(Math.random()*16).toString(16);
           }
           return str;
        }

        console.log(randomColor())

String对象

String 字符型

 var str="abcdef";
 var str1=new String("abcdef");

 console.log(typeof str)  //===输出string
 console.log(typeof str1)   //===输出object

str.length

console.log(str.length);   //===str长度
  长度  只读型 不能修改
  str[0]  字符串也可以使用下标的方式访问,但是只读
  字符串是不能再原字符串中直接修改,原字符串不能更改

//=====str字符串倒序
 var s="";
 for(var i=str.length-1;i>=0;i--){
     s+=str[i];
 }
 console.log(s);

indexOf()

在字符串中查找有没有相同的字符,如果有返回这个字符下标,如果没有返回-1

lastIndexOf()

从后向前查找,在字符串中查找有没有相同的字符,如果有返回这个字符下标,如果没有返回-1

includes()

判断字符串中是否有该字符

模糊查找

  var arr=[
        {id:1001,name:"计算器",price:10000},
        {id:1002,name:"计算机",price:10000},
        {id:1003,name:"算盘",price:10000},
        {id:1004,name:"算术本",price:10000},
        {id:1005,name:"遥控器",price:10000},
        {id:1006,name:"电视机",price:10000},
        {id:1007,name:"笔记本",price:10000},
    ]

    var input=document.getElementById("input");
    var ul=document.getElementById("ul");
    input.oninput=function(){
        ul.innerHTML=arr.reduce(function(value,item){
            if(item.name.includes(input.value)){
                value+="<li>"+JSON.stringify(item)+"</li>";
            }
            return value;
        },"");
    }

concat() 连接字符串

    var str="abc";
    var str1=str.concat("def");
//=============连接数组元素============
    var arr=["ab","cd","ef","gh"];
    var str="".concat.apply("",arr);//楞背
    console.log(str);  //===输出结果 abcdefgh

slice()

  截取字符串中从某个位置开始到某个位置之前结束的字符串内容
    var str="abcdefg";
    var str1=str.slice(2,5);
    console.log(str1);  //===输出  cde
    str=str.slice(0,-1);
    console.log(str);  //=== 输出 abcdef

charAt()

获取字符串中第几个下标的字符

 var str="abcdef";
 var s=str.charAt(1);    
 console.log(s);  //===输出 b

charCodeAt()

 查找字符串中下标几所对应的字符的Unicode编码
  var str="azAZ09";
  console.log(str.charCodeAt(0));  //===输出97

String.fromCharCode()

 将Unicode编码转换为字符串
  console.log(str.charCodeAt(97));   //===输出a
//====输出Unicode表第一个到第100个汉字
 	for(var i=0x4e00;i<0x4e00+100;i++){
        console.log(String.fromCharCode(i));
    }

//====随机四位验证码
 var arr=[];
 for(var i=48;i<123;i++){
     if(i>57 && i<65) continue;
     if(i>90 && i<97) continue;
     arr.push(String.fromCharCode(i));
 }
 arr.sort(function(){
     return Math.random()-0.5;
 }).length=4;
 console.log(arr.join(""));

replace

(要替换的字符串,替换为什么字符串) 待讲

在字符串中替换所需要修改字符,并且返回一个修改后的新的字符串

var str="abcdecf";
    str=str.replace("c","z");
    console.log(str);  //===输出 abcdezf

search

(要查找的字符) 待讲

查找字符,返回这个字符所在下标,如果没有找到返回-1

match

(要查找的字符) 待讲

返回查找到字符所形成的数组,包括属性中含有所在下标及原字符串和群组名

substr

(开始,长度) 截取字符串
开始参数可以使用负数,表示从字符串那个下标开始,
长度表示从开始位置截取字符串的长度,截取几个字符

  var str="abcdefgh";
  console.log(str.substr(2,4))   //===输出  cdef

substring

(开始,结束) 截取字符串 不允许使用负数,但是可以使用从后向前查找,如果是负数,则默认为0

var str="abcdefgh";
console.log(str.substring(2,4)) //=== 输出 cd
console.log(str.substring(4,1))  //=== 输出 bcd

substring–substr --slice区别(面试题)

toLowerCase();

将字符转换为小写字母

var str="ABCDECF";
    console.log(str.toLowerCase())  //===输出  abcdecf

toUpperCase();

将字符转换为大写字母

var str1=str.toUpperCase();
    console.log(str1);  //===输出 ABCDEFGH

split();

切割字符串,将字符串切割为数组
(面试题)

//==解决小数运算的误差问题
 function subtraction(a,b){
        var max=String(a).split(".")[1].length>String(b).split(".")[1].length ? String(a).split(".")[1].length : String(b).split(".")[1].length;
        a*=Math.pow(10,max);
        b*=Math.pow(10,max);
        return Number("0."+String(a-b));
    }

日期

Date 日期 时间

  // UTC 格林尼治时间
   var date=new Date();
    console.log(date.toString())
    console.log(date.toLocaleString())
    console.log(date.toUTCString());//后面用

    console.log(date.getFullYear());//获取年
    console.log(date.getYear());//获取年

    console.log(date.getMonth());//月   0-11 
    console.log(date.getDate());//日 
    console.log(date.getDay());//星期  0-6  0是星期日

    console.log(date.getHours());//小时
    console.log(date.getMinutes());//分钟
    console.log(date.getSeconds());//秒
    console.log(date.getMilliseconds());//毫秒


   //===设置年份
    date.setFullYear(2022);


    date.setMonth(-1);
    console.log(date);

    console.log(date.getTime());//1970.1.1到现在的毫秒数
    时间戳

    //===让图片每次重新加载
    var img1=document.getElementById("img1");
    img1.src="http://www.163.com/img/1.jpg?time="+new Date().getTime();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

轩逸客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值