JavaScript面试常问

JavaScript面试常问;

提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、JavaScript数据类型

基础数据类型:Boolean、String、Number、Symbol、Undefined、Null
复杂(引用)类型:Object、Array、(Date、RegExp、Function、后面三个新增类型)
也可能会考察数据类型判断,typeof、instanceof;包括手动实现typeof和instanceof

二、var|let|const的相同点和区别;

在ES6(ES2015)出现之前,JavaScript中声明变量就只有通过 var 关键字,函数声明是通过 function 关键字,而在ES6之后,声明的方式有 var 、 let 、 const;

1.var;

如果使用var来声明的变量;那这个变量就属于当前的函数作用域,如果声明的变量是发生在函数外的顶层变量,那么这个变量就属于全局作用域。

var a = 1; /*此处声明的变量a是在函数外声明的顶层变量*/
function fn(){
   var a = 2;/*此处声明的变量a为函数fn里面的局部变量*/
   console.log(a);a在这里是2
}
fn();
console.log(a);//1

如果在声明 var变量时, 省略var关键字且变量名相同的话,那么省略var的变量就会变成全局变量,赋值给有var且变量名字相同的变量:


var a = 1; /*此处声明的变量a是在函数外声明的顶层变量*/
function foo(){
   a = 2;/*此处声明的变量a为函数fn里面的局部变量*/
   console.log(a);a在这里是2
}
foo();
console.log(a);//2

也就是所说的变量提升(var声明的变量存在的变量提升)

2.let 声明的变量特点:

1.let 声明的变量具有块作用域的特征。
2.在同一个作用域,不能重复声明变量。
3.let 声明的变量不存在变量提升。

let a = 1;
console.log(a);//1
/*-------------------------------------------------*/
console.log(b);//会报错  说b 是不存在的  b is not defined
let b = 2;

3.const:

const 声明的为常量,除了和 let 的特点一样外,还有一个就是不可改变;即 const 定义的变量,一旦定义后,就不能修改。

const a = 1;
console.log(a);//1
a = 2;
console.log(a)/*Uncaught TypeError: Assignment to constant variable.*/

但是,也并不是说 const 声明的变量其内部内容不可变,列如:

const obj = {a:1,b:2};
console.log(obj.a);//1
obj.a = 3;
console.log(obj.a);//3

更准确的说,是 const 声明的变量是一个值的只读引用。这并不意味着它所持有的值是不可变的,只是变量标识符不能重新分配。

总结

1.let 和 const 声明的变量属于块级作用域,var 声明的变量属于局部作用域;
2.var 存在变量提升现象,而 let 和 const 没有变量提升;
3.在同一个块级作用域,var 变量可以重复声明,而let 变量不能重新声明,const 变量不能被修改。

promise

promise考察点比较多,包括实现自己的promise和一些调用的知识点
推荐两篇文章:实现PromisePromise题

CSS

盒模型,盒模型的margin、padding有什么特点?
flex布局的属性都有什么,都代表什么含义?
左右居中布局、上下居中布局、上下左右居中布局,实现方式是什么?
单行超出省略…,
多行超出省略…
自适应布局
响应式布局
less、scss、stylus
rem、em、vw等
移动端1px如何实现?
css如何实现三角形?
css的link和import区别是什么?
解决盒子塌陷的方法/

html

meta用来干嘛的
块元素、行元素区别和举例
html5新增的标签有哪些?(最少10个)
video标签的使用,事件等

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值