首页 > 其他分享 >js-数据类型-作用域-作用域链-变量 审核中

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

时间:2022-08-18 21:23:27浏览次数:47  
标签:const 变量 作用域 数据类型 js --- let

变量

变量声明的几种方式

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
}

标签:const,变量,作用域,数据类型,js,---,let
From: https://www.cnblogs.com/pitepan/p/16600170.html

相关文章

  • 【数据库】SQLite 3.38改进了JSON支持,增强了CLI功能
    SQLite3.38作为这个流行的嵌入式SQL数据库库在2022年的第一次重大更新被发布。早在2015年的SQLite3.9中,它就增加了JSON1模块,开始建立对SQLite数据库内存储JSON数据的支......
  • js 学习day01andday02
    day1javascript三种引入方式三种输出方式变量数据类型查看数据类型判断是否为数字javascript三种引入方式行内式<ahref="javascript:alert('helloword')">哒哒......
  • 题解P2143 [JSOI2010] 巨额奖金
    题意就是让你求有多少种最小生成树生成树用kruskal求就好了我们考虑用dfs中用乘法原理去计数#include<bits/stdc++.h>#defineN1000100usingnamespacestd;ty......
  • 通过 Docker 部署 nodejs -- egg 项目
    常用的docker命令安装docker环境docker--help查看docker命令提示dockerps-a查看所有运行的容器dockerimages查看所有的配置Dockerfile文件查看容......
  • springboot实现多级嵌套并返回json格式的数据处理
    菜单功能列表嵌套菜单解决方案本文目录       菜单功能列表嵌套菜单解决方案           1、通过mapper定义sql的自循环,在查询时就完成菜单的嵌套  ......
  • protobuf3 标量数据类型
    标量数据类型消息标量字段可以是以下类型之一——下表列出了可以用在.proto文件中使用的类型,以及在生成代码中的相关类型:.protoTypeNotesC++TypeJavaTypePython......
  • js倒计时案例
    1<!--2*@FilePath:倒计时.html3*@Author:马小屁4*@Date:2022-08-1809:45:135*@LastEditors:PleasesetLastEditors6*@LastEditTime:202......
  • Redis 数据类型list以及使用场景
    简介: Redis数据类型list以及使用场景数据存储需求:存储多个数据,并对数据进入存储空间的顺序进行区分需要的存储结构:一个存储空间保存多个数据,且通过数据可以体现进入顺......
  • ASP.NET Core :容器注入(二):生命周期作用域与对象释放
    //瞬时生命周期ServiceCollectionservices=newServiceCollection();services.AddTransient<TestServiceImpl>();using(ServiceProvidersp=services.BuildServic......
  • day.js 常用方法
    文档地址(中文) Day.js是一个轻量的JavaScript时间日期处理库,和Moment.js的API设计保持完全一样.如果你曾经用过Moment.js,那么你已经知道如何使用Day.j......