一、变量的访问原则
从里到外,一层一层去查找
二、匿名函数
1. 具名函数
2. 匿名函数
3. 函数表达式
【案例】
4. 具名函数与函数表达式区别
- 具名函数的调用可以写到任何位置 (函数前和函数后都可以)
- 函数表达式,必须先写表达式,后调用
5. 立即执行函数 (不需要调用,立即执行)
法1:小括号 小括号 第一个小括号里面写function( ){ } ;
代码写在大括号里
分号加在前面也可以
第二个小括号相当于调用,里面是实参,function里面的小括号是形参
法2:小括号里面function( ){ }( ) 外面 ;
6. 函数的综合案例
补 0 操作
局部变量在函数中第一次写时,记得声明
三目运算符的结果只是一个返回值,需要有一个变量来接收这个值
双击 + Ctrl + D 可以选中和双击时所选中的东西
三、逻辑中断
&& 左边为假就中断,两边都真,则返回最后一个真值
|| 左边为真就中断;两边都真,则返回第一个真值;一假一真,返回真
|| 只要有真则为真
- 一真一假
前面为真,或者前面为假,直接中断语句,括号后面就不执行了
若 fn()不传值,即 x 和 y 都是 undefined,则 x 与 y 获得的都是 0
- 全真
四、转换为布尔型
1. 显示转换
黄框中的内容是当做假来看(来与&&做运算) ,但还是会返回本值
2. 隐式转换
字符串 + 数字 会将整体转化为字符串
undefined除外,undefined + ‘ 数字 ’ 会拼接成字符串 ;undefined + 数字 会变为NAN
减法会让空字符串变为 0 ,会让字符串 ‘ 2 ’ 变为数字 -2
0 - 2 = -2
减法只能用于数字,和字符串连用,会变成NAN
null 与数字结合参与运算时,会当做 0 来运算
0 + 3 = 3
undefined + 数字 会变为NAN
注意:NAN 不等于 NAN ,NAN做任何操作结果都是NAN,但是NAN是一个数字型
五、对象
1. 定义
2. 对象的声明
对象属性没有顺序
属性和具体的值之间用 :(冒号) 隔开
多个属性之间用 ,(逗号)隔开
3. 属性
【案例】
4. 对象的使用
①、查 (对象名.属性名)
![](https://img-blog.csdnimg.cn/direct/0ab13e9c8fcf4f0b8f95e58f028ea8fe.png)
注意:若所查的属性名是字符串型,查时用对象名[ ' 属性名 ' ]
必须加引号,单引号和双引号都可以
查总结
【示例】
②、改 (对象名.属性名 = 新值)
③、增 (对象名.属性名 = 新值)
④、删 (delete 对象名.属性)(了解)
5. 对象的方法 (方法名 + 函数)
方法调用 对象名. 方法名( )
注意:千万不要忘了括号
注意:调用了,就直接打印输出了,不需要再加 consloe.log( )
多个方法之间用逗号分隔
【示例】
6. 遍历对象
用 for in 语句
遍历对象代码
注意:for in 不提倡遍历数组,因为k是字符串
注意:不加引号
7. 综合案例
①、定义一个数组,每一个对象是一个数组元素
数组里面放的是对象,每一个对象之间用逗号分隔, 所以每个对象都是一个数组元素,遍历数组用for 不用 for in
②、 console.log(i) 打印数组下标索引号
③、 console.log(students[i]) 打印每一个数组元素(即每一个对象)
④、 console.log(students[i].name) 打印对象中的某一个值
⑤、 要渲染表格内容,所以在表格里面加 script ;表格内容标题不用渲染,所以不用加到 script 里面
⑥、 打印对象里面的数据
⑦、 渲染总代码
注意事项
-1- for in 使用 对象名[ ]来打印输出;普通的 for 则都可以
注意:for in 不能用 对象名 . 属性名 来打印输出,要使用 对象名[ ] 来打印输出
普通的 for 则都可以
-2- 除了第一行外,其他行,鼠标放上去变色
table tr:not(:first-child):hover
-3- 表格
tr 是每一行
th 是首行元素
td 是每一行表格内容
8. 内置对象
①、 定义
②、 内置对象-Math
-1- ceil 向上取整
-2- floor 向下取整
注意:parseInt( )直接删去后面,取整数部分
并且可以将字符串转为整数数字
而 floor 就不可以,不能将字符串转为整数数字,结果会是NAN
-3- round 四舍五入
-4- max min abs
注意:max 与 min 不能计算数组
-5- pow 幂方法
-6- PI 圆周率
-7- sqrt 平方根
-8- random 生成随机数
<1>、 若想要0 - n 之间的随机数,可以最后乘以 n+1
【示例】生成 0-10 的一个随机数 (整数)
注意:floor 是向下取整,10.9999 -> 10
<2>、 任意抽取数组中的一个数据
<3>、 生成 N-M 之间的随机数
注意:可以将后面(M - N + 1)先算出来,然后算出的结果与Math.random 相乘,最后生成的随机数再 + N
9. null 空对象 类似 let obj = { }
用于这里本来是要存对象的,但是现在对象还没有准备好,所以先用 null 先代替
10. 同一对象中出现同一名称,后面会覆盖前面的
11. random 的综合案例
①、 随机点名
注意:用 splice 删除数组元素
删掉了黄忠 ,(目前,只能做到,打印一个,在整个数组中,删掉所打印的数组元素)
但是做不到一直删,一直删需要结合后面的 APIs 来实现
②、 猜数字
【不设定次数】
【设定次数】
③、 生成随机颜色
【框架】
【 随机打印 #ffffff 十六进制 】
【 随机打印 rab(255,255,255) 】
【总代码】
12. 综合案例 - 页面渲染
①、 先用数组对象,来记录要渲染的数据
②、 循环数组打印数据
注意:蓝色数据中图片有引号,所以下面黄色数据打印时就不加引号
注意:文字里面有空格,打印的时候会默认不打印空格之后的内容,想要完全打印出来
则在外面加一个 “ ” 引号
六、术语解释
七、基本数据类型和引用数据类型
1. 堆栈空间分配区别
2. 简单数据类型 值类型的内存分配
3. 复杂数据类型 引用类型的内存分配
【示例】 同一个地址同一个对象 修改一个值,另一个值也跟着变为一样的
好啦!!!本周的分享到这里就结束了。下周同一时间同一地点我们不见不散!!!
大家记得要练习哦!动手敲一敲!