ES6,CSS,的相关习题

172 阅读2分钟

这是我参与11月更文挑战的第11天,活动详情查看:2021最后一次更文挑战

记录下自己刷到的习题及解析方法

  • ES6变量声明

(单选题) 关于ES6声明变量,以下哪个代码段不会报错()

A. const a;
B. let a = 1;
  let a = 2;
C. var a = 1;
  var a = 2;
D. {
    let a = 1;
  }
  var b = a;

A const必须在定义时赋值

B let和const不能重复定义

D let,const 区块作用域

  • ES6解构

关于ES6解构表达式
let [a,b, c,d, e] = "hello"; 
描述正确的是()
A. e = "hello";其它都为undefined
B. 当中 a = "h", b = "e";
C. 语法报错
正确答案: B

字符串也可以解构赋值。这是因为此时,字符串被转换成了一个类似数组的对象。

const [a, b, c, d, e] = 'hello'; a // "h" b // "e" c // "l" d // "l" e // "o" 类似数组的对象都有一个length属性,因此还可以对这个属性解构赋值。

let {length : len} = 'hello'; len // 5

  • CSS

下面哪一个属于 CSS 命名规范 ()
A. PostCSS
B. BEM
C. Less
D. Sass
正确答案: B

这题不是让判断四个选项命名是否规范,而是考察知识广度。 PostCSS:转换CSS的工具 BEM:命名规范block-name__element-name--modifier-name,也就是模块名 + 元素名 + 修饰器名,以保证命名不会冲突 LESS、SASS都是CSS预处理器

  • typeof操作符,instanceof操作符

在这里插入图片描述 JS中值的类型分为原始值类型和对象类型。原始值类型包括 number, string, boolean, null 和 undefined;对象类型即 object。首先原始值类型它就不是对象。 另外,要注意 'hello' 和 new String('hello') 的区别,前者是字符串字面值,属于原始类型,而后者是对象。用 typeof 运算符返回的值也是完全不一样的:

typeof 'hello';  // 'string'
typeof new String('hello');  // 'object'

之所以很多人分不清字符串字面值和 String 对象,归根结底就是 JS 的语法对你们太过纵容了。当执行 'hello'.length 时,发现可以意料之中的返回 5,你们就觉得 'hello' 就是 String 对象,不然它怎么会有 String 对象的属性。其实,这是由于 JS 在执行到这条语句的时候,内部将 'hello' 包装成了一个 String 对象,执行完后,再把这个对象丢弃了,这种语法叫做 “装箱”,在其他面向对象语言里也有(如 C#)。不要认为 JS 帮你装箱了,你就可以在写代码的时候不分箱里箱外了!

1.操作符

(1typeof操作符

格式:result=typeof variable

返回值:

undefined 值未定义

boolean 布尔值

string 字符串

number 数值

object 对象、null

function 函数


(2instanceof操作符

格式:result=variable instanceof constructor

返回值:

true

false