内置对象、Math数学方法,String字符串型、Date日期


内置对象

Math数学方法

Math.PI Π

弧度=Math.PI/180*角度

角度=弧度/Math.PI/180;
Mat.SQRT1_2    根号2分之一

Math.SQRT2     根号2
Math.sin();

Math.cos();

Math.ean();

取整

Math.floot();向下取整

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 字符串型

 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+="
  • "+JSON.stringify(item)+"
  • "; } 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))   //===输出  cdefgh
    
    

    substring

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

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

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

    toLowerCase();

    将字符转换为小写字母

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

    toUpperCase();

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

    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();
    
    
    

    相关