前端面试准备-3

1.let、const、var的区别

①:let和const为块级作用域,var为全局作用域

②:let和var可以重新赋值定义,而const不可以

③:var会提升到作用域顶部,但不会初始化;let和const也会提升到作用不顶部,但在初始化前不可访问(暂时性死区)。

2.let声明的全局变量,可以被window对象访问吗

不可以。与之相对应的var声明的全局变量和最外层作用域中定义的函数可以被window访问。

3.JavaScript中的Object.keys

该方法返回一个数组,该数组的元素是一个对象自身自身可枚举属性的字符串键。

通常认为Object.keys返回的是有序的

①:数字优先(数字属性,包括可以转为数字的字符串属性,优先返回,按照数值的大小升序排序)

②:字符串其次(非数字的字符串属性按照他们被添加到对象的顺序返回)

③:不返回Symbol类型

4.HTML的语义化

根据内容的含义和结构(内容语义化),选择合适的HTML标签(代码语义化)

5.DOCTYPE的作用

是一种标记语言的文档类型声明。<!DOCTYPE html>不是一个html标签,而是一个指令,告诉浏览器使用哪个html版本进行编写。

标准模式

怪异模式(如果文档中缺少DOCTYPE或错误使用,浏览器可能就会使用这种模式)

6.meta标签

<meta>由name和content属性定义,用来描述网页文档属性。

javascript 复制代码
//声明文档使用字符编码
<meta charset="UTF-8">

//保障页面正确缩放和渲染
<meta name="viewport" content="width=device-width, initial-scale=1.0">

//页面描述
<meta name="description" content="这是一个页面描述。">

<meta name="keywords" content="关键词1, 关键词2">


//指明作者
<meta name="author" content="作者名">


//一定时间后重新刷新或重定向到另一个URL
<meta http-equiv="refresh" content="30">

//防索引、防跟踪

7.如何确认this值

在非严格模式下,总是指定一个对象,但在严格模式下可以是任意值

'use strict'开启严格模式

①:全局执行环境中,指向全局对象(非严格、严格模式都一样)

②:函数内部,取决于被调用的方式

  • 直接调用的this值:非严格模式下为全局对象(window);在严格模式下为undefined
  • 对象方法调用的this值:都为调用者对象

8.如何指定this的值

①:调用时指定:

  • call方法,挨个传入参数
javascript 复制代码
function func(num1,num2){
  console,log(this)    //打印指向person对象
  console.log(num1,num2) //1 2
}

const person = {
  name:'山里'
}

func.call(person,1,2)
  • apply方法,以数组方式传入参数
javascript 复制代码
function func(num1,num2){
  console,log(this)    //打印指向person对象
  console.log(num1,num2) //3 4
}

const person = {
  name:'山里'
}

func.apply(person,[3,4])

②:创建时指定

  • bind方法
javascript 复制代码
function func(num1,num2){
  console,log(this)    //打印指向person对象
  console.log(num1,num2) //666  888
}

const person = {
  name:'山里'
}

const bindFunc = func.bind(person,666)

bindFunc(888)
  • 箭头函数
javascript 复制代码
const food ={
  name:'bb'
  eat(){
    console.log(this) //food这个对象
    setTimeout(function(){
      console.log(this)   //全局对象window
   },1000)
}

food.eat()
相关推荐
橙子家24 分钟前
浏览器缓存之【结构化数据库与缓存】: IndexedDB、Cache storage 和 Storage buckets
前端
user205855615181330 分钟前
X6 中边悬浮置顶,规避 `mouseleave` 事件丢失问题
前端
李明卫杭州31 分钟前
CSS aspect-ratio 属性完全指南
前端
Pedantic2 小时前
SwiftUI 手势层级(Gesture Hierarchy)详解
前端
飘尘3 小时前
前端转型全栈(Java后端)的快速上手指引
前端·后端·全栈
一颗烂土豆3 小时前
Meshopt 压缩深度解析,为什么它比 Draco 更快
前端·javascript·webgl
浏览器工程师4 小时前
AI Agent 接浏览器任务,先别让它一路点到底
前端·后端
雨季mo浅忆4 小时前
VSCode自动格式化三要素
前端
爱勇宝5 小时前
深扒 Anthropic 1680 位工程师简历:应届生几乎没机会,AI 公司最缺的不是博士
前端·后端·程序员