对象与随机数

134 阅读3分钟

1、对象

PS:not 选择器

.box .son:not(p:hover){

background-color:#ffff;

}

意为:选择box子元素中除了鼠标悬停状态的p标签都设置背景颜色

概念:

1、JavaScript里的一种数据类型

2、无序的数据集合

3、用于描述对象的抽象特性集合

4、信息分类:静态特征(基本属性)、动态行为(函数动作)

使用:

1、声明语法:let 对象名 = { key-value }

PS:

json对象也为key-value类型数据

属性名可以使用“ ”或“,一般情况下省略,除非遇到特殊符号如:空格、中横线

例如:

let person = {
    name: '张三',
    age: 18,
    sex: '男,
    putData: function(){
        //匿名函数
        console.log(this.name,this.age,this.sex)
        console.log(this['name'],this['age'],this['sex']
    }
}

属性访问:object.key object['key']

PS:

1、object.引用方式,。后永远不是变量

2、object[变量],object['属性名']才是唯一使用变量去对象属性的方法

2、操作对象

一、查询属性
object.key  object['key']

当key中出现运算符等关键字时可以使用['key']来规避错误

二、修改属性
object['key'] = "new"
object.function = function(){}
三、增加属性
//不同于json添加数据
let person = {
    key : "value"
}
person.hobby = '足球'
person['sex'] = '男'
四、删除属性
let person = {
    key : 'value'
}
//删除语句
delete person.key

3、遍历对象

PS:

1、object中没有length属性,所以无法通过object.length来确定内部属性个数

2、object内部为无序(按key的ASCII来排序显示)列表;没有规律下标

使用 key in object方式来遍历对象

取出的只为keyName(string)

for(let keyName in object){
    console.log(keyName)
    console.log(object[keyName])
}

1、keyName为string类型,无法通过object.keyName来引用

2、区分object['keyName']与object[keyName]的区别

(提示:字符类型与变量类型)

4、内置对象

概念:

JavaScript内部提供的对象,给予开发者调用

Math:

方法:

random:生成 [0,1) 之间的随机数

ceil:向上取整

floor:向下取整

max: 找最大值

min: 找最小值

Math.max/min(1,2,3,4,...arr)    
//若直接传入arr,返回NaN

pow : 幂运算

abs : 绝对值

round : 四舍五入

随机数:
//生成0-10的随机数
Math.floor(Math.random()*(11))
//生成5-10的随机数
Math.floor(Math.random()*6)+5
//生成M-N的随机数
Math.floor(Math.random()*(N-M+1))+M
//利用floor取整来去除小数点
扩展:
术语:

关键字:在编译语言中具有特殊意义(即已经被编译语言使用)的词汇

保留字:在编译语言中目前没有意义,但未来可能具有特殊意义的词汇

例如:int short 、long 、char

标识(符):变量名、函数名的统一叫法

表达式:能产生值得代码,一般配合运算符出现,

语句: 以结束语为止的一段代码,输出、声明、分支

数据类型:

简单类型:基本数据类型或值类型

存储时、变量中存储的是值本身

复杂类型:存储变量的相关指针地址

使用new关键字创建的对象,object、array、date

堆与栈

简单数据类型存放到栈里

//栈,操作系统自动分配释放存储,

复杂数据存储在堆

//堆,一般由程序员分配释放,若不释放则由垃圾回收机制回收
//通过栈存储的地址指针引用
案例

学成在线页面渲染