一、ES6 的 let 和 const,ES5 的var 之间的区别。
var:
- 函数作用域
- 存在变量提升,可以在变量声明之前使用,可以重复声明,
let 和 const
- 块级作用域
- 不存在变量提升,在变量声明之前使用会报错(暂时性死区)
- 在同一作用于下,不能重复声明
const
- const 必须在声明的时候赋值
- const 声明的常量不能更改
二、 CSS 的优先级
优先级权重:
!important > style(1000) > id(100) > class(10)
如果两个选择器作用在同一元素上,计算权重值,相加,权值高的样式生效。
注意:
- 单独使用同一个选择器的时候,不能跨等级使CSS规则生效;例如:无论使用多少个class组成的选择器,都没有一个ID选择器的权重高。
- 两个相同权重的选择器作用于同一个元素上,以最后一个为主
三、 reduce函数实现数组累加
const arr = [1, 2, 7, 4, 9, 10]
const sum = arr.reduce((prev, val) => {
return prev + val
})
console.log(sum); //33
四、如何判断一个数是否为整数
1. 取余运算符判断
function isInteger(num) {
return num % 1 === 0
}
console.log(isInteger(3)); //true
console.log(isInteger(3.2)); // false
console.log(isInteger('')); // true
console.log(isInteger('3')); // true
console.log(isInteger(true)); // true
console.log(isInteger([])); // true
空字符串、字符串类型数字、布尔true、空数组都返回了true. 修改:
function isInteger(num) {
return typeof(num) === 'number' && num % 1 === 0
}
console.log(isInteger(3)); // ture
console.log(isInteger(3.2)); //false
console.log(isInteger('')); //false
console.log(isInteger('3')); //false
console.log(isInteger(true)); //false
console.log(isInteger([])); //false
2. 使用Math.round、Math.ceil、Math.floor判断
function isInteger(num) {
return Math.floor(num) === num
}
console.log(isInteger(3)); // ture
console.log(isInteger(3.2)); //false
console.log(isInteger('')); //false
console.log(isInteger('3')); //false
console.log(isInteger(true)); //false
console.log(isInteger([])); //false
(1) Math.round 给定一个四舍五入最接近的整数
例如 Math.round(20.4) // 20
(2) Math.ceil 返回一个大于等于给定数字的最小整数
例如 Math.ceil(20.4) // 21
(3) Math.floor 返回一个小于等于给定数字的最大整数
例如 Math.floor(20.4) //20
3. ES6 的方法 Number.isInteger
Number.isInteger(3) // true
Number.isInteger(3.2) //false
Number.isInteger('') //false
Number.isInteger('3') //false
Number.isInteger(true) //false
Number.isInteger([]) //false
五、 行内元素、块级元素有哪些?CSS有哪些选择器?
行内元素:span、script、img、a、input、label、button、em......
块级元素:div、ul、ol、dd、dt、p、table、section......
CSS选择器:标签选择器、类选择器、ID选择器、伪类选择器、组合选择器、继承选择器、全局选择器