内置对象、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();