当前位置: 首页 > news >正文

前端面试准备-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属性定义,用来描述网页文档属性。

//声明文档使用字符编码
<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方法,挨个传入参数
  • function func(num1,num2){console,log(this)    //打印指向person对象console.log(num1,num2) //1 2
    }const person = {name:'山里'
    }func.call(person,1,2)
  • apply方法,以数组方式传入参数
  • function func(num1,num2){console,log(this)    //打印指向person对象console.log(num1,num2) //3 4
    }const person = {name:'山里'
    }func.apply(person,[3,4])

②:创建时指定

  • bind方法
  • 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)
  • 箭头函数
  • 
    const food ={name:'bb'eat(){console.log(this) //food这个对象setTimeout(function(){console.log(this)   //全局对象window},1000)
    }food.eat()

http://www.xdnf.cn/news/728353.html

相关文章:

  • openssl-aes-ctr使用openmp加速
  • Java大师成长计划之第35天:未来展望与个人总结
  • shell编程笔记
  • 预处理深入详解:预定义符号、宏、命名约定、命令行定义、条件编译、头文件的包含
  • 【大模型】情绪对话模型项目研发
  • C++继承与构造函数调用详解
  • flash写失败分析
  • Linux系统编程收尾(35)
  • 【C/C++】cmake实现Release版本禁用调试接口技巧
  • [定昌linux开发板]启用用户唯一性限制
  • Android全局网络监控最佳实践(Kotlin实现)
  • 从Java的Jvm的角度解释一下为什么String不可变?
  • Spring Boot3.4.1 集成redis
  • 自动过滤:用 AutoFilterer 实现高性能动态查询
  • 怎么从一台电脑拷贝已安装的所有python第三方库到另一台
  • 分库分表的常见策略
  • Arduino学习-跑马灯
  • day 26 函数专题
  • 基于云模型与TOPSIS评价算法的综合应用研究
  • 深度刨析树结构(从入门到入土讲解AVL树及红黑树的奥秘)
  • 深入理解Transformer架构:从原理到实践
  • python中 @注解 及内置注解 的使用方法总结以及完整示例
  • Jenkins 2.479.1安装和邮箱配置教程
  • SkyWalking如何实现跨线程Trace传递
  • 权威认证与质量保障:第三方检测在科技成果鉴定测试中的核心作用
  • 【C语言编译与链接】--翻译环境和运行环境,预处理,编译,汇编,链接
  • 怎么用外网打开内网的网址?如在异地在家连接访问公司局域网办公网站
  • DeepSeek 赋能数字人直播带货:技术革新重塑电商营销新生态
  • 处理知识库文件_编写powershell脚本文件_批量转换其他格式文件到pdf文件---人工智能工作笔记0249
  • Android 代码阅读环境搭建:VSCODE + SSH + CLANGD(详细版)