js-数据类型-作用域-作用域链-变量 审核中

变量

变量声明的几种方式

var let const

成都网站建设哪家好,找创新互联公司!专注于网页设计、网站建设公司、微信开发、小程序制作、集团成都企业网站定制等服务项目。核心团队均拥有互联网行业多年经验,服务众多知名企业客户;涵盖的客户类型包括:成都房屋鉴定等众多领域,积累了大量丰富的经验,同时也获得了客户的一致称扬!

相同之处

  1. var let const 都可以用来声明一个变量

  2. 都拥有函数作用域与全局作用域

不同之处

  1. var声明的变量有变量提升
    letconst声明的变量不会存在这个问题

  2. var没有块级作用域, letconst 声明的变量具有块级作用域

块级作用域:

if(true){
let name = 'let声明的变量';
const enums = 'const声明的变量'
}
  1. var 声明的变量是可以被重复定义的,let声明的变量在同一个作用域中是 不可以重复声明, 但是可以重复修改,const声明的是一个常量,在规范上是不可以被重复定义重复修改的,但是当其变量的值为引用数据类型时,她所指向到堆
    中的值是可以被重复修改的,如果要对一个值进行修改,建议使用let声明变量。

作用域

js中作用域分为: 全局作用域 函数作用域 块级作用域

作用域链

寻找当前变量一直从当前作用域寻找至全局作用域形成的链被称为作用域链

数据类型

基础数据类型[值全部存储在栈中]

  • Number --- 数值
  • String --- 字符串
  • Boolean --- 布尔值
  • Symbol --- 唯一值
  • BigInt ---超出安全数值的值
  • Undefined --- 未定义的值
  • Null --- 未初始化的值

引用数据类型[引用数据类型存在堆中,键值存在栈中]

  • Object --- 对象
  • Array --- 数组

类型判断

基本数据类型

  1. 基本数据类型可以通过typeof 来进行判断是哪种基本数据类型
const str = '字符串' //string
const num = 123 //Number
const Boolean = true //Boolean
const nul = null //Object
const a = undefined //undefined
const bigInt = BigInt(123n) //BigInt
const sybmol = Symbol('asd') //Symbol
  1. Object.prototype.toString.call(xxx).slice(8,-1) //返回检测到的数据类型
  2. str.proto === String.prototype

引用数据类型

引用数据类型可以判断原型是否相等

手写类型判断

function getType(type) {
if (typeof type === 'object') return Object.prototype.toString.call(type).slice(8, -1)
return typeof type
}

本文标题:js-数据类型-作用域-作用域链-变量 审核中
本文链接:http://bzwzjz.com/article/dsojjcc.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 四川成都网站制作 阿坝网站设计 定制网站设计 网站设计制作 成都网站建设流程 高端网站设计 网站设计公司 网站建设推广 成都网站建设 手机网站制作设计 成都网站建设 自适应网站建设 手机网站建设 网站建设 营销网站建设 成都网站制作 重庆企业网站建设 定制网站建设 泸州网站建设 重庆网站制作 温江网站设计 定制网站建设多少钱