• 欢迎来到本博客,希望可以y一起学习与分享

JS基础知识(覆盖JS基础面试题)

JavaScript/Jquery benz 2年前 (2019-05-15) 71次浏览 0个评论 扫描二维码
文章目录[隐藏]

变量类型和计算

JS中typeof的类型有哪些

类型转换

  • 显式类型转换
    • Number 函数
      • 数字:转换后还是数字
      • 字符串:如果可以被解析为数值,则为相应的数值,如果不能,则是 NaN,如果是空字符串那就是0
      • 布尔值:true为1,false为0
      • undefined:NaN
      • null:0
      • object:先执行valueOf,看是否能转换,如果不可以再执行toString,看是否可以转换,如果不可以报错
    • String 函数
      • 数字:转换成对应的字符串
      • 字符串:还是对应的字符串
      • 布尔值:true为’true’,false为’false’
      • undefined:undefined
      • null:null
      • object:先执行toString,看是否能转换,如果不可以再执行valueOf,看是否可以转换,如果不可以报错
    • Boolean
      下面这几个是false,其他都是true

      • NaN
      • null
      • undefined
      • 0
      • “”
      • false
  • 隐式类型转换
    • 四则运算
    • 判断语句
  • 奇葩的类型转换面试题

何时使用==,何时使用===

除了obj.a == null以外,都用=====要用的时候一定要是已经定义的
obj.a == null 转换之后其实是 obj.a == null || obj.a == undefined

JS中有哪些内置函数

JS变量按照存储方式有哪些类型

  • 1.值类型
  • 2.引用类型(节省空间,公用内存块)

区别:值类型改变一个不会影响其他的,引用类型改变都改变,因为公用内存块

如何理解JSON

JSON是JS的一个对象,也是一种数据格式,JSON中的两个api如下

  1. 将JSON字符串转换成JSON对象 JSON.parse()
  2. 将JSON对象转换成JSON字符串 JSON.stringify()

使用Object.prototype.toString获取一个对象的类型

原型和原型链

原型的五条规则

  1. 所有的引用类型都可以自定义添加属性
  2. 所有的引用类型都有自己的隐式原型(proto
  3. 函数都有自己的显式原型(prototype)
  4. 所有的引用类型的隐式原型都指向对应构造函数的显示原型
  5. 使用引用类型的某个自定义属性时,如果没有这个属性,会去该引用类型的__proto__(也就是对应构造函数的prototype)中去找

如何准确判断一个变量是数组类型

arr instanceof Array

instanceof判断一个引用类型是什么引用类型,是通过__proto__(隐式原型一层一层往上找,能否找到对应构造函数的prototype)

写一个原型链继承的例子

描述new一个对象的过程

  1. 创建一个新对象
  2. this指向这个新对象
  3. 执行代码给this赋值
  4. return this

作用域及闭包

变量提升

以下两种情况会进行提升:

  1. 变量定义
  2. 函数说明

this几种不同的使用场景

  1. 在构造函数中使用(构造函数本身)
  2. 作为对象属性时使用(调用属性的对象)
  3. 作为普通函数时使用(window)
  4. call,apply,bind(执行的第一个参数)

创建10个a标签,点击每个弹出对应的序号

如何理解作用域

  1. 自由变量
  2. 作用域链,及自由变量的查找,找不到逐级向上找
  3. 闭包的两个场景
    1. 函数作为变量传递
    2. 函数作为返回值

实际开发中闭包的应用

单线程和异步

同步和异步的区别,分别列举一个同步和异步的例子

同步会阻塞代码,但是异步不会 alert是同步 setTimeout是异步

关于setTimeout的笔试题

前端使用异步的场景

  1. 定时任务:setTimeout,setInterval
  2. 网络请求:ajax请求,动态img加载
  3. 事件绑定

需要等待的情况下都需要异步,因为不会像同步一样阻塞

日期和Math

知识点:

日期

Math

  • Math.random() – 返回 0 ~ 1 之间的随机数
  • Math.abs(x) – 返回数的绝对值
  • Math.ceil(x) – 向上取整
  • Math.floor(x) – 向下取整

常用的数组api

  • forEach(遍历所有元素)

  • map(对数组进行重新组装,生成新的数组)

  • sort(对数组进行排序)

  • filter(过滤符合条件的元素)

  • every(判断所有元素是否都符合要求)

  • some(判断是否有至少一个元素符合条件)

  • join(根据条件对数组组合成字符串)

  • reverse(将数组反转)

常用的对象api

  • for in
  • hasOwnProperty(检查属性是不是对象自有的,排除从原型链找到的属性)

问题:

获取当前日期

获取随机数,要求长度一致的字符串格式

写一个能遍历对象和数组的通用forEach函数

其他面试题

2018大厂高级前端面试题汇总
前端工程师面试必备(持续更新中)
每天搞定一道前端大厂面试题
前端面试题、知识点


文章 JS基础知识(覆盖JS基础面试题) 转载需要注明出处
喜欢 (0)

您必须 登录 才能发表评论!