对象
什么是对象,对象就是无序数据的集合,由若干个"键值对"(属性:值)来组成
下面是一个典型的对象:
let obj = {
name: '野兽先辈',//"name":'野兽先辈'的写法也是可以的
age: 24,
work: 'student',
speak: function(){
console.log('hello world')
}
}
console.log(obj)
- {key: value}是JS对象字面量的写法
- {“age”:5}等价于{age:5}
对象的基本使用
- 那么对于对象来说,如何去使用呢?
- 我们还可以对这个对象中的数据进行修改
- 可以设置一个变量,然后将属性赋值给这个变量
- obj[变量]和obj.属性有很大的区别.
- 给对象新增一个属性
- 遍历一个对象
对象的其他一些用法
Object.keys()
- 使用
Object.keys()
可以将一个对象的属性变为一个数组
delte
- 使用
delte
可以删除对象里面的属性
JSON格式
什么是JSON呢?
JSON 是一种语法,用来序列化对象、数组、数值、字符串、布尔值和 null 。它基于 JavaScript 语法,但与之不同:JavaScript不是JSON,JSON也不是JavaScript。----MDN
- 是一种数据格式,用于数据交换,在很多配置文件里都能看到xxx.json
- 将数据传输给服务器,数据需要遵守一个标准去储存然后传输.服务器也需要一个标准去解析.
格式
- 有复合类型和简单类型构成
- 复合类型的值只能是数组或对象,不能是函数、正则表达式对象、日期对象。
- 简单类型的值只有四种:字符串、数值(必须以十进制表示)、布尔值和null(不能使用NaN,Infinity,-Infinity和undefined)。
- 字符串必须使用双引号表示,不能使用单引号。
- 对象的键名必须放在双引号里面。
- 数组或对象最后一个成员的后面,不能加逗号。
//合法的JSON格式
["one","two","three"]
{"one":1,"two":2,"three":3}
{"names":["张三","李四"]}
[{"name":"张三"},{"name":"李四"}]
//非法的JSON格式
{name:"张三",'age':32}//属性名必须使用双引号
[32,64,128,0xFFF]//不能使用十六进制值
{"name":"张三","age":undefined}//不能使用undefined
JS内置对象
JSON.stringify
- 用于把一个值变为符合JSON的对象
JSON.parse
- 用于把一个符合JSON格式的字符串还原
Date对象
时间的几种表达方式
GMT
- 规定格林尼治标准时间的正午是在格林尼治上空最高点时间。由于地球每天的自转是不规则的,被原子钟报时的协调世界时(UTC)所取代。
UTC
- 以原子时秒长为基础,接近GMT时间,但更精确
CST
- 百儿京儿时间,在东八区,比世界协调时快八小时(即UTC+8)
创建一个时间对象
- 我们可以通过
new Date()
来创建一个当前时刻的时间对象,注意,这个创建的是一个对象 Date()
创建的是当前时刻的字符串
date对象的常见用法
我们可以通过一些方法调用now Date()
对象里属性的值
getTime()
- 使用
getTime()
可以返回对象距离1970年1月1日00:00:00对应的毫秒数
Date.now()
获取时间毫秒数的简化写法
- 可以直接获取当前时间的毫秒数
+new Date()
也可以
d.getMonth()
- 值得注意的是,月份是从0开始计算,因此下图返回的值是7,实际上是8月
其他各种用法
d.getTime()//返回实例对象距离1970年1月1日00:00:00对应的毫秒数
d.getDate()//返回实例对象对应每个月的几号(从1开始)
d.getDay()//返回星期,星期日为0,星期一为1,以此类推
d.getFullYear()//返回四位的年份
d.getMonth()//返回月份(0表示1月,11表示12月)
d.getHours()//返回小时(0~23)
d.getMilliseconds()//返回毫秒(0-999)
d.getMinutes()//返回分钟(0-59)
d.getSeconds()//返回秒(0-59)
创建一个其他时间的对象
- 可以在
new Date()
中传递一个参数
- 传递一个毫秒数也可以得到一个一模一样的时间
Math和Number的一些用法
常用方法
// 向下取整
console.log( Math.floor(3.15) ) //3
console.log( Math.floor(3.75) ) //3
console.log( Math.floor(-3.75) ) //-4
// 向上取整
console.log( Math.ceil(3.15) ) //4
// 四舍五入
console.log( Math.round(3.15) ) //3
console.log( Math.round(3.75) ) //4
// 绝对值
console.log( Math.abs(-3) ) //3
最大值和最小值
// 最大最小值
console.log( Math.max(3, 1, -2) ) //3
console.log( Math.min(3, 1, -2) ) //-2
//写一个函数,返回数组的最大值
const max = arr => Math.max(...arr)
max([3, -2, 5]) // 5
随机数Math.random()
Math.random()
返回[0,1)之间的一个伪随机数,包括0,不包括1
- 可以设置一个匿名函数,然后每次运行得到一个不同的值
写一个函数,返回长度为n的随机字符串,包含A-Z,0-9
function randStr(len) {
let dict = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
let res = ''
for (let i=0;i<len;i++){
res+=dict[Math.floor(Math.random()*dict.length)]
}
return res
}
console.log (randStr(9))
写一个函数randomNum, 参数为min和max,返回一个最小为min、最大为max(包含max)的随机整数。
function randomNum(min, max) {
return min + parseInt(Math.random()*(max+1-min))}
number
parseInt(数字,进制)
parseInt
可以将数字转换成整数,但是他默认只能理解十进制和十六进制,其他进制数如果不设置进制,会自动理解为十进制.
to fixed()
- 保留小数x位