面试典籍(整理于6.17-6.23)

如何正确判断this的指向(注意区分严格模式和非严格模式)

  1. 全局环境中的 this
  2. 是否是 new 绑定
  3. 函数是否通过 call,apply 调用,或者使用了 bind 绑定,如果是,那么this绑定的就是指定的对象【称为硬绑定】
  4.  隐式绑定,函数的调用是在某个对象上触发的,即调用位置上存在上下文对象。典型的隐式调用为: xxx.fn()
  5. 默认绑定,在不能应用其它绑定规则时使用的默认规则,通常是独立函数调用
  6.  箭头函数

原文链接:step-by-step   、  js的this指向

js的原始数据类型有哪些?null是对象吗?原始数据类型与复杂数据类型的区别?

原始数据类型:

  • Boolean
  • String
  • Number
  • Undefined
  • Null
  • Symbol(ES6新增)

复杂数据类型:Object 

首先null 不是一个对象,尽管 typeof null 输出的是 object,这是一个历史遗留问题,JS 的最初版本中使用的是 32 位系统,为了性能考虑使用低位存储变量的类型信息,000 开头代表是对象,null 表示为全零,所以将它错误的判断为 object 

基本数据类型和复杂数据类型的区别为:

 

原文链接:原始数据类型与复杂数据类型的区别 

  1. 内存的分配不同
  2. 访问机制不同
  3. 复制变量时不同(a=b)
  4. 参数传递的不同(实参/形参)

对语义化标签的理解

HTML5的语义化指的是合理正确的使用语义化的标签来创建页面结构,如 header,footer,nav,从标签上即可以直观的知道这个标签的作用,而不是滥用div。

语义化的优点有:

  • 代码结构清晰,易于阅读,利于开发和维护
  • 方便其他设备解析(如屏幕阅读器)根据语义渲染网页。
  • 有利于搜索引擎优化(SEO),搜索引擎爬虫会根据不同的标签来赋予不同的权重

语义化标签主要有:

  • title:主要用于页面的头部的信息介绍
  • header:定义文档的页眉
  • nav:主要用于页面导航
  • main:规定文档的主要内容。对于文档来说应当是唯一的。它不应包含在文档中重复出现的内容,比如侧栏、导航栏、版权信息、站点标志或搜索表单。
  • article:独立的自包含内容
  • h1~h6:定义标题
  • ul: 用来定义无序列表
  • ol: 用来定义有序列表
  • address:定义文档或文章的作者/拥有者的联系信息。
  • canvas:用于绘制图像
  • dialog:定义一个对话框、确认框或窗口
  • aside:定义其所处内容之外的内容。<aside> 的内容可用作文章的侧栏。
  • section:定义文档中的节(section、区段)。比如章节、页眉、页脚或文档中的其他部分。
  • figure:规定独立的流内容(图像、图表、照片、代码等等)。figure 元素的内容应该与主内容相关,但如果被删除,则不应对文档流产生影响。
  • details:描述文档或者文档某一部分细节
  • mark:义带有记号的文本。

猜你喜欢

转载自blog.csdn.net/weixin_38199437/article/details/92801396