持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第9天,点击查看活动详情
1-变量
- 请说出变量的作用是什么?
- 存储数据
- 请写出你说知道的所有的js关键字?
- let
- 你认为变量和字面量的区别是什么?
- 字面量 代表的是一个固定的数据,只能运算不能存储 (只能在等号右边)
- 变量 代表的是一个内存空间。里面的数据可以改变。只能存储不能运算
- let a = 'a' , 你觉得 这两个a是一样的吗? 如果不一样,你认为它们的区别是什么?
- a:变量。 表示内存的一个空间,可以存储任何数据
- 'a' 字符串字面量,就是代表一个固定的字符'a'
2-运算符与表达式
- = 作用是什么?
赋值
运算符,把右边的数据赋值给左边的变量
- == 作用是什么?
比较
运算符。比较两边数据的值 。
- ===作用是什么?
全等
运算符。 比较两边数据的类型和 值
- 关系运算符干什么用的?
- 判断
单个
条件是否成立
- 请结合课程案例,说出1-2个用到关系运算符的场景
- 图片无限切换下标判断
- 输入框
非空判断
- 逻辑运算符干什么用的?
- 判断
多个
条件是否成立 - && : 判断多个条件同时成立
- || :判断多个条件任意一个成立
- ! : 取反
- 请结合课程案例,说出1-2个用到逻辑运算符的场景
- 平年和闰年 : 能被400整除 或 能被4整除且不能被100整除
- 登录的时候需要同时判断用户名和密码不能为空
- 逻辑运算符短路运算(逻辑中断)规则是什么?
- 逻辑与:找假。 左边为假则返回左边式子的值,否则返回右边式子的值
- 逻辑或:找真。 左边为真则返回左边式子的值,否则返回右边式子的值
- num++ 和 num+1 有什么区别?
- num++ , 会改变num自身的值
- num+1,只是算术运算,不会改变num自身的值
- num++ 和 num += 1 有什么区别?
- num++ , 无条件的进行数字类型隐式转换
- num+=1, 相当于num = num + 1,一般情况下数算术运算;如果num是字符串,此时+号是连接符
3-分支语句
- 一般什么时候会用到if语句?
单个
条件判断
- 一般什么时候会用到if-else语句?
- 两个
互斥
条件判断
- 一般什么时候会用到if-else if-else语句?
多个
条件判断
- 一般什么时候会用到switch-case语句?
- 固定值匹配
- 假如有一个变量 let a = true,现在我的判断条件是检测a是不是true.以下有两种写法,请问这两种写法哪一种更好?为什么,请说出你的理由?
if(a == true){ }
if(a){ }
- 这种更好,因为if小括号里面可以直接写布尔类型
- 如果分支语句中的判断条件,不是一个布尔类型。而是一些其他的值,请问js编译器会如何处理?处理规则是什么?
- js编译器会进行隐式转换。 处理规则是 Boolen(数据)
4-循环语句
- 请说出for循环语句的执行流程。
for(){}
- 1.执行小括号第一个语句
- 2.判断小括号第二个语句是true还是false
- true : 执行循环体。 然后执行小括号第三个语句
- false:循环结束
- 3.重复步骤2
- 请说出while循环语句的执行流程。
while(){}
- 1.判断小括号语句是true还是false
- true:执行循环体
- false:循环结束
- 2.重复步骤1
- 你会在什么样的情况下选择使用循环语句来完成需求?
- 一段代码只需要重复执行多次
- 当你需要使用循环语句的时候,你是如何抉择到底使用for循环还是while循环的?
- 循环次数明确使用for
- 循环次数不明确使用while
- 你在书写循环语句的时候,认为哪一个细节最容易出错(开放式回答)
- 循环变量忘记let关键字
- 循环条件写错
- 你认为自己在使用循环语句解决问题的时候,最大的难点或瓶颈是什么?(开放式回答)
5-数据类型
- js为什么要有数据类型?
- 因为不同的数据,CPU的处理与存储方式不同。所以需要进行分类。
- 字符串类型的作用是什么?(结合理论+应用,说出自己的理解)
- 展示网页的文本
- 数字类型作用是什么?(结合理论+应用,说出自己的理解)
- 进行数学运算
- 布尔类型的作用是什么?(结合理论+应用,说出自己的理解)
- 用于条件判断 true/false
- 你会在什么时候使用数组?什么时候使用对象?你的判断依据是什么?(结合理论+应用,说出自己的理解)
- 使用数组: 需要存储多个数据,且数据是有序的
- 使用对象:需要存储多个数据,且数据是无序的(键值对)
- 判断依据:数据是否需要按照顺序存储
- 你会在什么样的情况下,想起来使用函数?
- js中的对象在取值的时候有两种语法。 使用最多的是点语法:
对象名.属性名
, 还有一种语法是 :对象名['属性名']
, 这两种语法作用是一致的。但是在使用的时候还是有一些细微的区别。- 例如,遍历对象
for(let key in obj){ }
,请说出obj.key
和obj[ key ]
这两个语法有什么区别?- obj.key : : key表示属性名
- obj[ key ] : key表示变量名,真正的属性名是这个变量中存储的字符串
- 你还知道对象 点语法 和 中括号语法,一些其他区别吗?(开放式回答,比较深)
- 中括号语句支持隐式转换。 obj[ 0 ] 相当于 obj[ '0' ]
- 中括号语句支持带-的属性名。 obj.a-1 会报错, 但是 obj[ 'a-1' ]不会报错
- 例如,遍历对象