内置对象
- js中的对象分为3种:自定义对象、内置对象、浏览器对象
- 前面的两种对象时js基础内容 属于ecmascript 第三个浏览器对象属于我们js独有的 我们js api讲解
查文档
- MDN MDN
Math对象
Math 是一个内置对象,它拥有一些数学常数属性和数学函数方法。Math 不是一个函数对象
| <script> |
| |
| console.log(Math.abs(1)); |
| console.log(Math.abs(-1)); |
| console.log(Math.abs('-1')); |
| console.log(Math.abs('pink')); |
| |
| |
| |
| console.log(Math.floor(1.2)); |
| console.log(Math.floor(1.8)); |
| |
| |
| console.log(Math.ceil(1.2)); |
| console.log(Math.ceil(1.9)); |
| |
| console.log(Math.round(1.4)); |
| console.log(Math.round(1.8)); |
| console.log(Math.round(-1.2)); |
| console.log(Math.round(-1.5)); |
| </script> |
| console.log(Math.random()); |
| |
| |
| |
| |
| function getRandom(min, max) { |
| min = Math.ceil(min); |
| max = Math.floor(max); |
| return Math.floor(Math.random() * (max - min)) + min; |
| } |
| |
| console.log(getRandom(1,10)); |
| |
| |
| var arr = ['小花','小明','小欧']; |
| console.log(arr[getRandom(0,arr.length-1)]); |
| </script> |
日期对象
Date概述
- Date对象和Math对象不一样, 它是一个构造函数,所以我们需要实例化后才能使用
- Date实例用来处理日期和时间
| <script> |
| |
| var date = new Date(); |
| console.log(date); |
| |
| var date1 = new Date(2019,1,2); |
| console.log(date1); |
| var date2 = new Date(2019-10-1); |
| console.log(date2); |
| </script> |
| <script> |
| function conutDown(time){ |
| var nowTime = + new Date(); |
| var inputTime = +new Date(time); |
| var times = (inputTime - nowTime)/1000; |
| |
| d = parseInt(times/60/60/24); |
| d = d<10 ? '0' + d : d; |
| h = parseInt(times/60/60%24); |
| h = h<10 ? '0' + h : h; |
| m = parseInt(times / 60 %60); |
| m = m<10 ? '0' + m : m; |
| s = parseInt(times%60); |
| s = s<10 ? '0' + s : s; |
| return d +'天'+ h + '时' + m + '分' + s + '秒'; |
| } |
| console.log(conutDown('2022-5-7 18:00:00')); |
| |
| var nowTimes = new Date(); |
| console.log(nowTimes); |
| </script> |
数组对象
- 利用数组字面量
- 利用new Array()
| <script> |
| |
| |
| var arr = [1,3,54,3] |
| console.log(arr[0]); |
| |
| |
| var arr1 = new Array() |
| var arr2= new Array(4) |
| |
| var arr3 = new Array(3,65,65,65) |
| console.log(arr1,arr2,arr3); |
| </script> |
- 检查是否为数组的方法
| <script> |
| |
| function reverse(arr){ |
| var newArr = []; |
| for (var i = arr.length -1 ;i>=0;i--){ |
| newArr[newArr.length] = arr[i] |
| } |
| return newArr; |
| } |
| |
| var arr = new Array(1,54,46,65); |
| console.log(reverse(arr)); |
| var obj = new Object; |
| obj.name = 'dfhak'; |
| obj.sex = '男'; |
| console.log(obj); |
| |
| |
| |
| |
| console.log(arr instanceof Array); |
| console.log(obj instanceof Array); |
| |
| |
| console.log(Array.isArray(arr)); |
| console.log(Array.isArray(obj)); |
| </script> |
- 增加删除数组元素的方法
| <script> |
| |
| |
| var arr = [1,34,3,5,35,5]; |
| arr.push(1,1,1,1,1,1,99,9); |
| console.log(arr); |
| |
| |
| |
| |
| |
| |
| var arr1 = [1,34,3,5,35,5]; |
| console.log(arr1.unshift('re','3434')); |
| console.log(arr1); |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| console.log(arr.pop()); |
| |
| |
| |
| |
| |
| |
| |
| |
| console.log(arr1.shift()); |
| |
| </script> |
-
数组排序
| <script> |
| |
| var arr = [1,43,5,46,57,687,98,0,7]; |
| |
| arr.reverse() |
| console.log(arr); |
| |
| |
| arr.sort(function(a,b){ |
| |
| return b-a; |
| }) |
| |
| console.log(arr); |
| </script> |
-
数组索引方法
| <script> |
| |
| |
| |
| |
| var arr = [1,3,5,6,7,8,9,9]; |
| console.log(arr.indexOf(7)); |
| |
| |
| console.log(arr.lastIndexOf(7)); |
| |
| </script> |
方法名 |
说明 |
返回值 |
concat() |
链接两个或多个数组,不影响原数组 |
返回一个新的数组 |
slice() |
数组截取slice(begin,end) |
返回被截取项目的新数组 |
splice() |
数组删除splice(第几个开始,要删除个数) |
返回被删除项目的新数组 注意,这个会影响原数组 |
字符串对象
- 基本包装类型
为了方便操作基本数据类型,js还提供了三个特殊的引用类型,String,Number,Boolean
基本包装类型就是把简单的数据类型包装成为复杂的数据类型
| <script> |
| |
| var str = 'study'; |
| console.log(str.length); |
| |
| |
| |
| |
| |
| var temp = new String('study'); |
| |
| str= temp; |
| |
| temp = null; |
| console.log(str); |
| </script> |
- 字符串不可变
指的是里面的值不可变,虽然看上去可以改变内容,但其实是地址变了,内存中开辟了新的空间
-
根据字符返回位置
字符串所有的方法,都不会修改字符串本身(字符串是不可变的),操作完成会返回一个新的字符串
方法名 |
说明 |
indexOf('要查找的字符',开始的位置) |
返回指定内容在元字符串中的位置 如果找不到就返回-1,开始的位置是index的索引号 |
lastIndexOf() |
从后往前找,只找第一个匹配的 |
| <script> |
| |
| var str = '我自去横刀向天笑,去留肝胆两昆仑'; |
| console.log(str.indexOf('去')); |
| console.log(str.indexOf('去' ,2)); |
| |
| console.log(str.lastIndexOf('去')); |
| |
| </script> |
- 根据位置返回字符(*)
方法名 |
说明 |
使用 |
charAt(index) |
返回指定位置的字符(index 字符串的索引号) |
str.charAt(0) |
charCodeAt(index) |
获取指定位置处字符的ASVLL码(index索引号) |
str.charCodeAt(0) |
str[index] |
获取指定位置处字符 |
HTML5,IE8+支持和charAt()等效 |
字符串操作方法
方法名 |
说明 |
concat(str1,str2,str3) |
concat()方法用于连续两个或者多个字符串。拼接字符串,等效于+ + 更常用 |
substr(start,length) |
从start位置开始(索引号),length取的个数重点记住这个 |
slice(start,end) |
从start位置开始 截取到end位置 end取不到(他们两都是索引号) |
substring(start,end) |
从start位置开始,截取到end位置end取不到 基本和slice 相同但是不接受负值 |
其他方法
方法名 |
说明 |
replace() |
替换字符replace('被替换的字符','替换为的字符')他只会替换第一个字符 |
split() |
字符串转换为数组split('分隔符') |
| <script> |
| |
| var str = 'helloworld'; |
| console.log(str.replace('he','ss')); |
| var str1 = 'qwertyuqwertyqwerty'; |
| |
| while(str1.indexOf('q') !==-1){ |
| str1 = str1.replace('q','*') |
| } |
| console.log(str1); |
| |
| var str2 = "'red','blue','black'" |
| console.log(str2.split(',')); |
| |
| var str3 = "red&blue&black"; |
| console.log(str3.split('&')); |
| |
| var arr = [1,2,4,5,6,7,8]; |
| console.log(arr.join()); |
| </script> |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通