前端面试准备-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()
相关推荐
子兮曰1 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰1 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
前端小万1 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝1 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
三十而立洋1 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
卡布鲁1 天前
把一个 Vite + Vue3 应用塞进 qiankun (React + Umi3) 主站:十个坑的复盘
前端·javascript·react.js
李少兄1 天前
JavaScript 隐式全局变量解析
javascript
汉堡大王95271 天前
Jev:不是聊天机器人, 而是一个智能 if 语句
前端·人工智能·后端
梦想很大很大1 天前
从运行事实到回归证据:Workrun 的 Telemetry 与 Evaluation 实践
前端·人工智能·后端
计算机魔术师1 天前
Meta Muse agent 接入 Shopify 的 Shop Pay 实现代理式购物
前端