js常用内置对象

常用的内置对象

Math

1).Math

  1. Math.abs()
    -Math.abs(x): 返回x的绝对值
    -console.log(Math.abs(“1”)); 1
    -console.log(Math.abs(-1)); 1
    -console.log(Math.abs(“你好”)); NaN
    -console.log(Math.abs(undefined)); NaN
    -console.log(Math.abs()); NaN
    -console.log(Math.abs(null)); 0
  2. Math.PI = π Math.E = e;
    3.Math.ceil(x) 向上取整 Math.floor(x) 向下取整 Math.round()四舍五入 Math.round(1.5)返回2,Math.round(-1.5)返回-1
    4.Math.max(x,y,z,k,…) 找出一组数中的最大数
    Math.min(x,y,z,k,…) 找出一组数中的最小数
    Math.pow(x,y) 求x的y次幂
    Math.sqrt(x) 求x的平方根
    !!
    5.Math.random() 返回一个浮点数,伪随机数(0~1)之间

Date

2).Date: 实例用来处理日期和时间,Date对象基于1970年1月1日(世界标准时间)起的毫秒数
Date是一个构造函数,需要创造对象去用它
Date的构造函数:
new Date();
new Date(value); 1970年经过value毫秒后到达什么时间
new Date(dateString);
new Date(year[,month[,day[,hour[minutes[,毫秒]]]]]);

案例1:
var date = new Date();
console.log(date()); 输出当前时间
案例2:
var date = new Date(“2019-04-03”); 传入时间
console.log(date());

1.Date.now(); 获得1970年到现在的毫秒数
对象名.valueOf 获得1970年到现在的毫秒数
var date = +new Date() 获得1970年到现在的毫秒数
对象名.getTime() 获得1970年到现在的毫秒数
2.打包日期对象

function gettime() {
    var date = new Date();
    var year = date.getFullYear();
    var month = parseInt(date.getMonth())+1;
    var day  = date.getDate();
    var hour = date.getHours();
    var minute = date.getMinutes();
    var second = date.getSeconds();
    month = month<10? ("0"+month):month;
    day = day<10? ("0"+day):day ;
    minute = minute<10? ("0"+minute):minute;
    second = second<10? ("0"+second):second;
    return year+"年"+month+"月"+day+"日 "+hour+":"+minute+":"+second;
}
console.log(gettime());

String

3)String js中不管单引号还是双引号都是字符串类型,没有单一的字符类型
string ------->字符串类型------>基本类型
String ------->字符串类型------>引用类型

String------>是一个对象
注意:
1.字符串可以看成是字符组成的数组,js中没有字符类型
2.字符是一个一个的,在别的语言中用一对单引号括起来
3.在js中字符串可以用单引号也可以用双引号
4.因为字符串可以看成数组 ,所以可以通过for循环遍历

var str = new String();
str = "hello";
for(var i = 0; i < str.length;i++) {
    console.log(str[i]);
}

5.字符串的特性:不可变性,字符串的值是不能修改的
案例1:

var str = new String();
str = "hello";
str[2] = o;
for(var i = 0; i < str.length;i++) {
    输出的值还是hello,字符串可以通过索引访问字符串中的某个值,但是只能访问,不能修改
    console.log(str[i]);
}

案例2:

var str = new String();
str = "hello";
str = "你好"
console(str);

输出值是你好,但不是替换掉了hello,而是新的字符串在堆中声明了一个新的空间,将新的空间地址赋值给了str替换掉了str里面原本存储的地址

String一些常用的方法:

1.str.charAt(index) 方法从一个字符串中返回指定的字符。
str.charCodeAt(index) 方法从一个字符串中返回指定的字符的ASCII值。
str[index] 方法从一个字符串中返回指定的字符。
字符串中的字符从左向右索引,第一个字符的索引值为 0,最后一个字符(假设该字符位于字符串 stringName 中)的索引值为 stringName.length - 1。 如果指定的 index 值超出了该范围,则返回一个空字符串。

2.静态 String.fromCharCode() 方法返回由指定的UTF-16代码单元序列创建的字符串。
注意:静态方法可以直接用 构造函数.方法名(参数1,参数2,…) 调用,而动态方法必须创建一个对象后,用对象调用
语法: String.fromCharCode(num1, …, numN) 该方法返回一个字符串,而不是一个 String 对象。
案例1:

console.log(String.fromCharCode(97,98,99,100));
输出abcd

3.concat 字符串连接
案例1:

var str = "你好";
console.log(str.concat("我也好"));
//输出 你好我也好

4.indexOf() 寻找指定的字符串,找到第一个匹配的返回索引,没有则返回-1
语法:
str.indexOf(字符串);
案例:

var str = "helolo"; console.log(str.indexOf("o")); 结果为3

str.indexOf(字符串,起始寻找位置);
案例:

var str = "helolo"; console.log(str.indexOf("o",4)); 结果为5

lastIndexOf 和indexOf基本一样,不同点就是lastIndexOf是从后边往前找,但是返回的索引还是从前往后数的

5.replace(参数1,参数2) 用参数2的值替换参数1的值
案例:

var str =  "你好,我也好";
str = str.indexOf("你")!= -1? str.replace("你","他"):"你好我也好";
console.log(str);
  1. slice(start,end) start和end 都是数字类型,提取字符串中索引从start位置开始end前一个字符结束中的字符串,并返回这个字符串
    案例:

    var str = “你好,我也好”;
    var srr = str.slice(1,3);
    console.log(srr); 输出 好,

7.split 切割字符串
语法:
split(x(以x字符分割字符串) 切割字符串并返回一个数组
案例:

var str =  "你好,我也好,那就真的好";
var srr = str.split(",");
for(var i in srr) {
    console.log((srr)[i]);   返回 你好  我也好  那就真的好
}

split(x(以x字符分割字符串),y(切割后留下y个新字符串))
案例:

var str =  "你好,我也好,那就真的好";
var srr = str.split(",",2);
for(var i in srr) {
    console.log((srr)[i]);   返回 你好  我也好
}

8.substr() 截取字符串
语法:
str.substr(x) 从x位置开始截取到最后的,返回新的字符串
案例:

var str =  "你好,我也好,那就真的好";
str = str.substr(7);
console.log(str);   返回 那就真的好

str.substr(x,y) 从x位置向后截取y个元素,返回截取的字符串
案例:

var str =  "你好,我也好,那就真的好";
str = str.substr(7,3);
console.log(str);   返回 那就真

substring(x,y) 从x位置开始截取到y前一个位置为止,和slice一样唯一不同是它不接受负值
var str = “你好,我也好,那就真的好”;
str = str.substring(7,8);
console.log(str); 返回 那
注意: substring(x,y) 和 substring(y,x)截取的字符一样

9.toLocaleLowerCase() toLowerCase() 大写转小写
toLocaleUperCase toUpperCase 小写转大写

  1. trim() 清除字符串两端的空格
    trimLeft() 清除字符串左端的空格
    trimRight() 清除字符串右端的空格

Array

4)Array 数组
1.isArray(x) 判断x是不是数组 是静态方法

arr instanceof Array: 也可以用来判断是否为数组

2.concat(x,y,z,…) 方法使用于合并两个或多个数组,此方法不会改变现有数组,而是返回一个新数组
案例1

var str = [1,2,2,3];
var str1 = ['a','b','c'];
var str2 = str.concat(str1);
console.log(str);   输出 1,2,2,3
console.log(str2);  输出 1,2,2,3,a,b,c

3.every(函数)----返回值类型是布尔类型,函数作为参数使用,这个函数中有三个参数,第一个参数是元素的值
第二个参数是索引值,第三个参数是原来的数组(没用)
如果这个数组中的值都符合条件才返回true,否则返回false

var str = [1,2,2,3];
console.log(str.every(function(ele,index){   返回true
    return ele<=3;
}));
  1. filter(function(currentValue,index,arr){})-----返回值一个数组和every的作用差不多,用来筛选元素,把符合筛选条件的元素组成一个新数组返回,currentValue为当前的元素值,index为数组当前的索引,arr为数组对象本身
    案例:

    var str = [1,2,2,3];
    var str2 = str.filter(function(ele,index){
    return ele>=3;
    });
    console.log(str2); 输出 3

  2. push(x) 在数组的末尾添加x,返回新数组的长度
    unshift(x) 在数组前部添加x, 返回新数组的长度

  3. pop() 删除数组最后一个元素,并返回被删除的这个元素
    shift() 删除数组的第一个元素,并返回被删除的这个元素

7.forEach(函数(元素,索引,被遍历的数组)) 遍历数组内的元素
案例

var str = [1,2,2,3];
str.forEach(function(ele,index) {
    console.log(ele+"===="+index);
});
返回1===0
    2===1
    2===2
    3===3

8.indexOf(元素值) 返回数组里面该元素的下标,没有找到元素则返回-1

9.join(“字符串x”);返回一个字符串,先在数组每个元素后面添加字符串x,注意最后一个元素不添加,然后连接这些元素最后返回连接后的字符串

10.map(函数) 数组中的每一个元素都要执行这个函数,把执行后的结果重新的全部放在一个新的数组中
案例

var str = [1,2,2,3];
var str1 = str.map(function(ele,index) {
    str[index]+=1;
    return str[index];
});
console.log(str1);

11.reverse() 反转数组里面的元素位置
案例

var str = [1,2,2,3];
str.reverse();
console.log(str);  输出 3 2 2 1

12.sort() 排序数组里面的元素,并返回字符串,sort排序不一定是稳定的,默认排序方式是根据字符串Unicode码
案例1

var str = [1,1,100,40];
str.sort();
console.log(str);  返回 1 1 100 40

案例2

var str = [1,1,100,40];
str.sort(function(b,a){
    if(a>b) {
        return 1;
    }
    else if(a==b) {
        return 0;
    }
    else {
        return -1;
    }
});

console.log(str); 返回 1 1 40 100
a,b里面一开始放的是数组的第一个和第二个,循环一遍后是二个和第三个

13.slice(x(开始的索引),y(结束的索引)) 截取数组元素并用这些元素创建新数组,从索引x位置开始,到y位置前一个数结束
案例

var str = [60,50,1,100,40];
var str1 = str.slice(3,5);
console.log(str1);  返回 100 40

14.splice(数组索引x,要删除元素的个数y,要插入的内容z)— x为数组的索引,执行删除/插入/替换开始位置,x的值大于数组索引最大值时,插入元素直接插入在数组最后一个,不删除元素,y代表要删除的个数,从x位置开始向后删除y个元素,z是插入的内容
案例1

var array = [1,2,3,4,5];
array.splice(1,1);
console.log(array);  返回 1 3 4 5

案例2

var array = [1,2,3,4,5];
array.splice(1,1,3);
console.log(array); 返回 1 3 3 4 5

案例3

var array = [1,2,3,4,5];
array.splice(1,0,3);
console.log(array); 返回 1 3 2 3 4 5

15.some(function(currentValue,index,arr){}) 查找数组中是否有满足条件的元素,currentValue为当前的元素值,index为数组当前的索引,arr为数组对象本身,返回值为boolean类型,在数组中只要找到满足条件的元素就会终止函数并返回true,没找到则返回false
16. .includes(item) 判断数组中是否含有item元素,如果有则返回true,如果没有则返回false

Object

1.Object.keys(obj) obj为传入的对象,该方法主要是获得obj里面所有的属性名和方法名,以数组的方式返回
案例1

var people = {
    name: "ss",
    age: "s",
    say: ()=>{
        console.log("aa");
    }
}
console.log(Object.keys(people));

2.Object.defineProperty(obj,prop,descriptor);
参数1 obj : 传入的是你要修改的对象名
参数2 prop: 传入的是你要修改的属性名/方法名
参数3 descriptor: 以对象的形式书写
{
var people = {
name: “ss”,
age: “s”,
say: ()=>{
console.log(“aa”);
}
}
value: 设置属性的值,如果是新增属性默认为underfined
例:
Object.defineProperty(people,“hello”,{});
console.log(people.hello); 输出underfined;
writable: 设置值是否可以被重写, true|false,默认为false,值不可以被修改
例:

Object.defineProperty(people,“name”,{writable: false});
people.name = “aa”;
console.log(people.name); 输出为ss
enumerable: 目标属性是否可以被遍历出来 true|false 默认为false
例:
Object.defineProperty(people,“name”,{enumerable: false});
console.log(Object.keys(people)); 输出[“age”,“say”]
configurable: 目标属性是否可以被删除或者是否可以再次修改特性true|false 默认为false
例:
Object.defineProperty(people,“name”,{configurable: false});
delete peopel.name;
console.log(peopel.name); 输出ss
Object.defineProperty(people,“name”,{value: 500, configurable: true}); 报错
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值