js基础

72 阅读5分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第9天,点击查看活动详情

1-变量

  1. 请说出变量的作用是什么?
  • 存储数据
  1. 请写出你说知道的所有的js关键字?
  • let
  1. 你认为变量和字面量的区别是什么?
  • 字面量 代表的是一个固定的数据,只能运算不能存储 (只能在等号右边)
  • 变量 代表的是一个内存空间。里面的数据可以改变。只能存储不能运算
  1. let a = 'a' , 你觉得 这两个a是一样的吗? 如果不一样,你认为它们的区别是什么?
  • a:变量。 表示内存的一个空间,可以存储任何数据
  • 'a' 字符串字面量,就是代表一个固定的字符'a'

2-运算符与表达式

  1. = 作用是什么?
  • 赋值运算符,把右边的数据赋值给左边的变量
  1. == 作用是什么?
  • 比较运算符。比较两边数据的值 。
  1. ===作用是什么?
  • 全等运算符。 比较两边数据的类型和 值
  1. 关系运算符干什么用的?
  • 判断单个条件是否成立
  1. 请结合课程案例,说出1-2个用到关系运算符的场景
  • 图片无限切换下标判断
  • 输入框非空判断
  1. 逻辑运算符干什么用的?
  • 判断多个条件是否成立
  • && : 判断多个条件同时成立
  • || :判断多个条件任意一个成立
  • ! : 取反
  1. 请结合课程案例,说出1-2个用到逻辑运算符的场景
  • 平年和闰年 : 能被400整除 或 能被4整除且不能被100整除
  • 登录的时候需要同时判断用户名和密码不能为空
  1. 逻辑运算符短路运算(逻辑中断)规则是什么?
  • 逻辑与:找假。 左边为假则返回左边式子的值,否则返回右边式子的值
  • 逻辑或:找真。 左边为真则返回左边式子的值,否则返回右边式子的值
  1. num++ 和 num+1 有什么区别?
  • num++ , 会改变num自身的值
  • num+1,只是算术运算,不会改变num自身的值
  1. num++ 和 num += 1 有什么区别?
  • num++ , 无条件的进行数字类型隐式转换
  • num+=1, 相当于num = num + 1,一般情况下数算术运算;如果num是字符串,此时+号是连接符

3-分支语句

  1. 一般什么时候会用到if语句?
  • 单个条件判断
  1. 一般什么时候会用到if-else语句?
  • 两个互斥条件判断
  1. 一般什么时候会用到if-else if-else语句?
  • 多个条件判断
  1. 一般什么时候会用到switch-case语句?
  • 固定值匹配
  1. 假如有一个变量 let a = true,现在我的判断条件是检测a是不是true.以下有两种写法,请问这两种写法哪一种更好?为什么,请说出你的理由?
  • if(a == true){ }
  • if(a){ }
  • 这种更好,因为if小括号里面可以直接写布尔类型
  1. 如果分支语句中的判断条件,不是一个布尔类型。而是一些其他的值,请问js编译器会如何处理?处理规则是什么?
  • js编译器会进行隐式转换。 处理规则是 Boolen(数据)

4-循环语句

  1. 请说出for循环语句的执行流程。 for(){}
  • 1.执行小括号第一个语句
  • 2.判断小括号第二个语句是true还是false
    • true : 执行循环体。 然后执行小括号第三个语句
    • false:循环结束
  • 3.重复步骤2
  1. 请说出while循环语句的执行流程。 while(){}
  • 1.判断小括号语句是true还是false
    • true:执行循环体
    • false:循环结束
  • 2.重复步骤1
  1. 你会在什么样的情况下选择使用循环语句来完成需求?
  • 一段代码只需要重复执行多次
  1. 当你需要使用循环语句的时候,你是如何抉择到底使用for循环还是while循环的?
  • 循环次数明确使用for
  • 循环次数不明确使用while
  1. 你在书写循环语句的时候,认为哪一个细节最容易出错(开放式回答)
  • 循环变量忘记let关键字
  • 循环条件写错
  1. 你认为自己在使用循环语句解决问题的时候,最大的难点或瓶颈是什么?(开放式回答)

5-数据类型

  1. js为什么要有数据类型?
  • 因为不同的数据,CPU的处理与存储方式不同。所以需要进行分类。
  1. 字符串类型的作用是什么?(结合理论+应用,说出自己的理解)
  • 展示网页的文本
  1. 数字类型作用是什么?(结合理论+应用,说出自己的理解)
  • 进行数学运算
  1. 布尔类型的作用是什么?(结合理论+应用,说出自己的理解)
  • 用于条件判断 true/false
  1. 你会在什么时候使用数组?什么时候使用对象?你的判断依据是什么?(结合理论+应用,说出自己的理解)
  • 使用数组: 需要存储多个数据,且数据是有序的
  • 使用对象:需要存储多个数据,且数据是无序的(键值对)
  • 判断依据:数据是否需要按照顺序存储
  1. 你会在什么样的情况下,想起来使用函数?
  • js中的对象在取值的时候有两种语法。 使用最多的是点语法:对象名.属性名 , 还有一种语法是 : 对象名['属性名'] , 这两种语法作用是一致的。但是在使用的时候还是有一些细微的区别。
    • 例如,遍历对象for(let key in obj){ },请说出 obj.keyobj[ key ]这两个语法有什么区别?
      • obj.key : : key表示属性名
      • obj[ key ] : key表示变量名,真正的属性名是这个变量中存储的字符串
    1. 你还知道对象 点语法 和 中括号语法,一些其他区别吗?(开放式回答,比较深)
    • 中括号语句支持隐式转换。 obj[ 0 ] 相当于 obj[ '0' ]
    • 中括号语句支持带-的属性名。 obj.a-1 会报错, 但是 obj[ 'a-1' ]不会报错