JavaScript规定了几种语言类型

看板狂
• 阅读 64

JavaScript规定了几种语言类型

String、Number、Boolean、Null、Undefined、Object、Symbol(ES6)、BigInt(ES10)

  • 基本类型

    • 访问:按值访问
    • 存储:栈内存(Stack)
  • 引用类型

    • 访问:按引用访问
    • 存储:堆内存(Heap)
  • typeof:用来检测一个变量是不是基本的数据类型
  • instanceof: 用来判断某个构造函数的 prototype 属性所指向的对象是否存在于另外一个要检测对象的原型链上。简单说就是判断一个引用类型的变量具体是不是某种类型的对象
function a() {
  console.log(1)
}
let b = '1'
console.log( a instanceof Function) // true
console.log( b instanceof String) // false
console.log( typeof(b) === String) // false
console.log( typeof(b) === 'string') // true
  • 变量声明

    • 声明变量的方式有三种:var、let、const(es6新增let和const关键词来声明变量)
    • var

      • var可以进行变量提升(预解析),只提升变量声明,不提升变量赋值
      • var可以进行变量的重复定义(后定义的值会覆盖原先定义的值)
      • var定义的变量,只有在function当中定义外部无法访问,其他比如在for,if,while内部定义的都可以在外部进行访问
      • var定义的变量的作用域是window,可以用"window.变量名"来进行调用(一般都会省略简写)
    • let

      • let不能进行变量的提升,不能进行变量的重复定义,也不能定义其他(var,const)方式已经定义过得变量
      • let定义变量会有临时死区(在let变量未定义之前的区域都称作临时死区,即在这些区域当中不能够访问到let所声明的变量)
      • let定义的变量会形成一个块级作用域,在for,if,while内部定义变量在外部无法进行访问.类似函数内部的变量,这也是形成闭包的一种方式
      • let定义的变量作用域属于global,所以不能用"window.变量名"来调用;而global不会暴露在全局当中,所以也无法通过"global.变量名"来调用
    • const

      • const一般是用来定义常量(1,2,a,b…),一旦定义,不能修改
      • const声明变量必须赋值,否则直接报错
      • 开发中,我们约定俗成的将const定义的变量名全部大写
      • const 如果定义的是对象、数组、函数、引用数据类型。可以改变其中的存储的数据
      • const定义的变量作用域也属于global,也会有临时死区,也会形成块级作用域使外部无法访问
      • const不能进行变量的提升,不能进行变量的重复定义,也不能定义其他(var,let)方式已经定义过得变量
  • 在函数内部不定义直接进行赋值的变量(隐式声明),作用域属于全局,当函数执行之后在外部可以访问得到
  • 函数声明不管是在文档的何处位置都将被提升到顶部,并且函数定义也被提升

公众号回复 1 可获取电子书
JavaScript规定了几种语言类型

本文由mdnice多平台发布

点赞
收藏
评论区
推荐文章
晴空闲云 晴空闲云
4年前
javascript实践教程-05-数据类型
本节目标1.掌握js中7种数据类型。2.掌握5种基本数据类型number、string、boolean、null、undefined的声明。3.掌握js中数组的声明和数组相关的方法。4.掌握js中对象的声明和属性、方法的使用。内容摘要本篇介绍了js中的7种数据类型,其中5种基本数据类型:number、string、boolean、null、unde
凝雪探世界 凝雪探世界
4年前
js-Answers一
JavaScript的组成JavaScript由以下三部分组成:1.ECMAScript(核心):JavaScript语言基础2.DOM(文档对象模型):规定了访问HTML和XML的接口3.BOM(浏览器对象模型):提供了浏览器窗口之间进行交互的对象和方法JS的基本数据类型和引用数据类型
Jacquelyn38 Jacquelyn38
4年前
你不可不知的JS面试题
1、JS中有哪些内置类型?7种。分别是boolean、number、string、object、undefined、null、symbol。2、NaN是独立的一种类型吗?不是。NaN是number类型。3、如何判断是哪个类型?Object.prototype.toString.call(),返回为\objectType\。现在我们来验证一下
Jacquelyn38 Jacquelyn38
4年前
你不可不知的JS面试题(第一期)
1、JS中有哪些内置类型?7种。分别是boolean、number、string、object、undefined、null、symbol。2、NaN是独立的一种类型吗?不是。NaN是number类型。3、如何判断是哪个类型?Object.prototype.toString.call(),返回为objectType。现在我们来验证一下。Objec
九旬 九旬
3年前
函数参数传递
函数参数传递在JavaScript中函数传参,分为两种:基础类型(Number、String、Boolean..)引用类型(Object、Array、Funcion..)基础类型传参看下面的例子:js
Jacquelyn38 Jacquelyn38
4年前
面试官:JavaScript的数据类型你了解多少?
前言作为JavaScript的入门知识点,Js数据类型在整个JavaScript的学习过程中其实尤为重要。最常见的是边界数据类型条件判断问题。我们将通过这几个方面来了解数据类型:概念检测方法转换方法概念undefined、Null、Boolean、String、Number、Symbol、BigInt为基础类型;Ob
LinMeng LinMeng
4年前
js之传值与传址/undefined和null/严格模式
传值与传址基本数据类型有五种Undefined、Null、Boolean、Number和String引用数据类型有两种object,array,fn两种数据类型的区别:1.存储位置不同原始数据类型直接存储在栈(stack)中简单数据段,占据空间小,大小固定,属于被频繁使用的数据,所以存储在栈中;引用数据类型直接存
劳伦斯 劳伦斯
4年前
前端面试题自检 JS CSS 部分
JS类型JavaScript的简单数据类型Number,String,Boolean,Undefined,Null,Symboltypeof操作符的返回值numberstringbooleanundefinedobjectfunction
Kevin501 Kevin501
4年前
Go语言中new()和make()的区别
1.Go语言中的值类型和引用类型值类型:int,float,bool,string,struct和数组(数组要特别注意,别搞混了)变量直接存储值,分配栈区的内存空间,这些变量所占据的空间在函数被调用完后会自动释放。引用类型:slice,map,chan和值类型对应的指针变量存储的是一个地址(或者理解为指针),指针指向内存中真
Stella981 Stella981
4年前
JavaScript的深拷贝和浅拷贝
一、数据类型数据分为基本数据类型(String,Number,Boolean,Null,Undefined,Symbol)和对象数据类型。、1.基本数据类型的特点:直接存储在栈(stack)中的数据2.引用数据类型的特点:存储的是该对象在栈中引用,真实的数据放在堆内存里。引用数据类型在栈中存储了指针,该指针指向堆中该实
Stella981 Stella981
4年前
JavaScript学习小结
JavaScirpt变量可用来保存两种类型值:基本类型值,引用类型值基本类型值:Undefined,Null,Boolean,Number,String基本类型及引用类型值特点:1.基本类型值在内存中占据固定大小的空间,被保存在栈内存中;2.从一个变量向另一个变量复制基本类型值,会创建这个值的一个副本;
看板狂
看板狂
Lv1
夜来风雨声,花落知多少。
文章
4
粉丝
0
获赞
0