JS前端面试基础-变量类型与计算

news/2024/7/11 0:04:42 标签: javascript, vue.js, typescript, es6, 前端

JS面试之-变量类型和计算

  • 一、JS基础
    • 1.值类型和引用类型
    • 2.typeof运算符
    • 3.深拷贝(重点)
  • 二、变量计算和类型转换
    • 1.字符串拼接
    • 2. == 和 ===
    • 3.if语句与逻辑计算
  • 三、问题解答和总结
    • 1.typeof可以判断哪些类型
    • 2. 何时使用==,何时使用===?
    • 3.值类型 和 引用类型的区别?
    • 4.手写深拷贝
  • 四、小结


题目引入
  1.typeof能判断哪些类型?
  2.何时使用 == 和何时使用 ===
  3.值类型和引用类型的区别
  4.手写深拷贝

一、JS基础

1.值类型和引用类型

值类型
在这里插入图片描述
引用类型
在这里插入图片描述堆栈分析:(栈是从上往下,堆是从下往上)
值类型:
在这里插入图片描述
堆类型:
在这里插入图片描述
总结:
常见的值类型有:number undefined string boolean symbol(ES6)
常见的引用类型有:object array 特殊的引用类型:null function()函数

2.typeof运算符

判断所有的值类型
在这里插入图片描述
能判断是否是函数
在这里插入图片描述
能识别引用类型(不能再继续识别)
在这里插入图片描述

3.深拷贝(重点)

在这里插入图片描述

二、变量计算和类型转换

1.字符串拼接

const a = 100 + 10    // 110  可以使用100 + parseInt(‘10’)
const b = 100 + '10'   // 10010
const c = true + '10'  // true10	
const d = 100 + parseInt('10')    // 110

2. == 和 ===

100 == ‘100’   // true
0 == ‘’   // true
0 == false   // true
false == ‘’   // true
null == undeined   // true
// 除了 == null 之外,其他都一律用 ===
const obj = { x: 100 }
if (obj.a == null ) {}
// 相当于
// if (obj.a === null || obj.a === undefined) {}

3.if语句与逻辑计算

truly变量:!!a === true的变量(经过两次非运算之后为真)

falsely变量: !!a === false的变量(经过两次非运算之后为假)

//  一下是falsely变量,除此之外都是truly变量
!! 0 === false
!! NaN === false
!! ‘’ === false
!! null === false
!! undefined === false
!! false === false

三、问题解答和总结

1.typeof可以判断哪些类型

1.识别所有的值类型
2.识别函数
3.判断是否是引用类型(不可细分)

2. 何时使用==,何时使用===?

直接记住:除了 ==null之外,其他都用 ===

3.值类型 和 引用类型的区别?

值类型是深复制,引用类型是浅复制以下代码的输出可以说明
在这里插入图片描述

4.手写深拷贝

逻辑顺序:
1. 注意判断值类型和引用类型
2. 注意判断是数组还是对象
3. 使用递归

四、小结

1.值类型和引用类型
2.堆栈模型
3.深拷贝
4.typeof运算符
5.类型转换
6.truely和falsely变量


http://www.niftyadmin.cn/n/1542416.html

相关文章

Geospatial Knowledge Discovery via Intelligent Web Services

http://www.laits.gmu.edu/geo/nga/index.html 呵呵 今天发现的一个站点,研究基于语义web的地理服务发现方面的 和我的一致 时刻关注ing Introduction The project is funded by a grant from U.S. National Geospatial-Intelligence Agency(NGA) NURI(NGA Univers…

ip命令

ip命令用来显示或操纵Linux主机的路由、网络设备、策略路由和隧道,是Linux下较新的功能强大的网络配置工具。 语法 ip(选项)(参数) 选项 -V:显示指令版本信息; -s:输出更详细的信息; -f:强制使用指定的协议…

关于插件vue-lazyload懒加载的实战使用

用户体验优化之vue-lazyload 先安装npm install vue-lazyload -g 打开main.js引入vue-lazyload 回到你需要懒加载的组件的图片中把:src替换成v-lazy重新刷新页面即可 <img class"needsclick" v-lazy"item.imgurl" width"60" height"60…

下一代前端开发语言typescript学习之安装typescript

打开终端 windows电脑中 使用npm install -g typescript 全局安装最新版本 mac电脑中 使用sodu npm install -g typescript 输入密码后全局安装最新版本 如果不加sodu会报错 查看是否安装成功typescript 使用命令: tsc -V 恭喜你成功安装typescript

mac下的词典翻译快捷键

mac下的词典翻译快捷键&#xff1a;cmdctld;很方便 转载于:https://www.cnblogs.com/brucemengbm/p/6999429.html

EF(Entity Framework)通用DBHelper通用类,增删改查以及列表

其中 通用类名:DBhelper 实体类:UserInfo 1 //新增2 DBHelper<UserInfo> dbhelper new DBHelper<UserInfo>();3 UserInfo userinfo new UserInfo();4 userinfo.Name "1";5 dbhelper.Add(userinfo);6 7 //根据条件查找列表8 var entitye…

JS前端面试基础-原型和原型链

JS重点原型和原型链一、class和继承二、类型判断和instanceof三、原型四、原型链五、重要提示六、题目解答1.如何判断一个变量是不是数组&#xff1f;2.Class的原型本质&#xff0c;如何理解&#xff1f;七、小结JS是基于原型集成的语言 题目引入 1.如何判断一个变量是不是数组…

svn简易使用

博客已经搬家&#xff0c;请访问如下地址&#xff1a;http://www.czhphp.com Subversion是一个免费的开源的版本管理系统&#xff0c;它是作为CVS(Concurrent Versions System)的取代品出现的。本文简单介绍了Subversion在Fedora上的安装过程及其基本概念和使用方法。您可以到O…