精华内容
下载资源
问答
  • 主要介绍了JavaScript基本类型与引用类型详解,讲解了如类型的判断、类型的转换、类型的复制等内容,需要的朋友可以参考下
  • 主要介绍了JavaScript基本类型和引用类型,基本类型中还包含了类型转换,感兴趣的小伙伴们可以参考一下
  • 本文主要介绍了JavaScript基本类型值-Number类型的相关知识,具有很好的参考价值,下面跟着小编一起来看下吧
  • 文章目录JavaScript基本类型1. 原始类型:1.1 数值—Number1.2 字符串—String1.3 布尔值—Boolean1.4 字符—Symbol(ES6新增)1.5 Undefined1.6 Null2. 对象类型:2.1 重要的特殊对象3 类型识别 JavaScript基本类型...

    重新巩固JS系列,都是比较基础的东西,可以进行查漏补缺,很快看完,这是第一篇。

    其他JS重新巩固系列:

    JavaScript基本类型

    在编程领域中,数据类型(data type)用来将变量的值(value)进行分类,这样在对变量的值进行数学、关系、逻辑等运算时就不会产生错误了。例如: 2 * 2是合法的,2 * John就不合法了。

    JS中的基本类型分为原始类型对象类型两种

    1. 原始类型:

    原始类型(6种): Number、String、Boolean、Symbol、Null、Undefined

    1.1 数值—Number

    1. 采用标准:不区分整数和浮点数,所有数值都用浮点数表示,采用IEEE 754标准定义的64位浮点格式。
    2. 整数:范围是-2 ^53 ~ 2^53,有十进制,二进制(binary,以0b为前缀,之后的值由0~1组成)、八进制(octal,以0o为前缀,之后的值由0~7组成,注:不推荐以0为前缀的表示法)、十六进制(hexadecimal,以0x为前缀,之后的值由0~9a~f(10~15)组成)表示。例如:
    //二进制
    0b11 //合法
    0b22 //不合法
    
    //八进制
    0o67 //合法
    0o89 //不合法
    
    //十六进制
    0xAf //合法
    0xjk //不合法
    
    1. 浮点数:数值中必须包含一个小数点,小数点后至少要有一位数字,浮点数计算可能会有误差,对于极大或极小的数值可以用e表示法,例如:
    //存在误差
    0.1 + 0.2 = 0.30000000000000004
    
    //e表示法
    3.14e5 //即为314000
    
    1. 特殊数值,主要来自:全局直接量(无穷大Infinity、非数字NaN)、Number对象的属性(Number.MAX_VALUENumber.MIN_VALUE等)、Math对象(Math.PIMath.E等)的属性等。

    1.2 字符串—String

    1. 采用标准:用来表示文本,由0个或多个16位Unicode字符组成的字符序列。
    2. 可以使用单引号或者双引号(效果一样,必须成对出现),在JS代码中经常会出现HTML字符串,由于HTML标签中的属性值推荐的是双引号,所以JS字符串推荐使用单引号,例如:
    let imgEl = '<img src="xxxx.jpg" title="my photo">'
    
    1. 索引从0开始,长度是字符的个数
    let str = 'Hello World'
    str.length // => 11
    str[0] // => 'H'
    
    1. 字符串不能直接换行,如果想拆分成多行,需要在每行的结尾添加反斜杠\,输出的结果还是单行。
    // 错误写法
    'ab
    c'
    
    //正确写法
    let str = 'multiple\
    lines\
    end'
    str // => 'multiplelinesend'
    
    1. 转义字符:反斜杠后加一个字符表示转义字符,比如\n表示换行符,如果斜杠后面的字符没有特殊含义,则忽略斜杠。常见转义字符:
    字符含义
    \n换行
    \\斜杠
    \'单引号,在用单引号表示的字符串中使用
    \"双引号,在用双引号表示的字符串中使用
    \xnn十六进制代码表示的一个字符(其中n为0~F)。例如,\x41表示’A’
    \unnnn十六进制代码表示的unicode字符(其中n为0~F)。例如,\u03a3表示希腊字符’∑’
    1. 模板字符串(ES6新增):使用反引号(重音符, " ` "),里面的变量使用${}包裹,可以直接换行。
    let name = 'cc'
    name // => 'cc'
    `Hello, ${name}` //=> 'Hello, cc' 
    

    1.3 布尔值—Boolean

    用来表示真或假,开或关等含义。

    1. 只有两种值truefalse,通常用于if/else语句中,若为true则执行if语句中的逻辑,否则执行else里面的逻辑。
    if( status === 'open') {
    	console.log('Door is open');
    } else {
    	console.log('Door is closed');
    }
    
    1. 假值和真值:JS中任意值都可以转换为布尔值。一共6个值(undefined、null、0、-0、NaN、"")会被转换成false,其他值都是true 。

    1.4 字符—Symbol(ES6新增)

    可用作对象的非字符串属性,它是唯一且不可变的,例如:

    let uniqueName = Symbol(); 
    let person = {}; 
    person[uniqueName] = 'cc'; 
    console.log(person[uniqueName]); // => cc
    

    (备注:后期详细讲解)

    1.5 Undefined

    表示未定义或不存在,只有一个值undefined

    let abc;
    console.log(abc); // => undefined
    console.log(abcd); //报错,注意未赋值和未声明的区别
    let obj = {};
    console.log(obj.name) // => undefined
    

    1.6 Null

    表示空值,Null类型只有一个值null。如果定义一个变量来表示一个对象的话,声明时推荐将其设置为null。

    let obj = null;
    obj = { name: 'cc'}
    

    2. 对象类型—Object:

    除了原始类型的值以外,其他都是对象。对象是键值对的集合,值可以是原始值,也可以是对象。例如:

    //author对象:有name属性,值为'cc',还有age属性,值为100
    let author = {
    	name: 'CC',
    	age: 100
    }
    

    2.1 重要的特殊对象

    特殊对象函数 Function数组 Array日期 Date正则 RegExp全局 Global错误 Error
    (备注:后期单独详细讲解)

    3 类型识别

    可以使用typeof操作符来检测变量的数据类型,它返回的值为一个小写的字符串。

    变量abc的取值typeof abc 的结果
    let abc;'undefined'
    let abc = true;'boolean'
    let abc = 123;'number'
    let abc = 'abc';'string'
    let abc = function () {};'function'
    let abc = {}; //[]、null'object'
    let abc = Symbol();'symbol'

    说明:整理自网易公开课。

    展开全文
  • js基本类型与引用类型

    千次阅读 多人点赞 2018-06-15 11:21:22
    1.基本类型:Underfined ,Null, Boolean,Number,String2.引用类型: Object首先了解一个概念:栈内存与堆内存---这是两种不同的内存分配方法一般代码逻辑,简单变量,结构体都是放在栈中;而对象,以及被装箱的数据...

    1.基本类型:Underfined ,Null, Boolean,Number,String

    2.引用类型: Object,Array,Date,Function

    首先了解一个概念:栈内存与堆内存---这是两种不同的内存分配方法

    一般代码逻辑,简单变量,结构体都是放在栈中;而对象,以及被装箱的数据放在堆中


    栈内存中存放地址指向堆内存中的对象

    基本类型就是保存在栈内存中的简单数据段,而引用类型指的是那些保存在堆内存中的对象

    基本类型在内存中分别占有固定大小的空间,他们的值保存在栈空间中,我们通过按值访问

    引用类型:值的大小不固定,栈内存中存放地址指向堆内存中的对象,是按引用访问的。栈内存中存放的只是该对象的访问地址

    3.在堆内存中为这个值分配空间。由于这种值的大小不固定,因此不能把他们保存在栈内存中。但内存地址大小是固定的,因此可以将内存地址保存在栈内存中。这样,当查询引用类型的变量时,先从栈中读取内存地址,然后再通过地址找到堆中的值。对于这种,我们把它叫做按引用访问。

    当我们看到一个变量类型是已知的,就分配在栈里面,比如INT,Double等,其它未知的类型,比如自定义类型,因为系统不知道需要多大,所以程序自己申请,这样就分配在堆里面。基本类型大小固定,引用类型大小不固定,分开存放使得程序运行占有内存最小。

    4.基本类型在当前执行环境结束时销毁,而引用类型不会随执行环境结束而销毁,只有当所有引用它的变量不存在是这个对象才被垃圾回收机制回收。


    基本类型有一下几个特点:

    1.基本类型的值是不可变的

    任何方法都无法改变一个基本类型的值,比如一个字符串:


    var name  = 'hello';
    
    name.toUpperCase();  //输出HELLO
    
    console.log(name);   //输出 hello

    会发现原始的name并未发生改变,而是调用了toUpperCase()方法后返回的是一个新的字符串

    再来个例子:

    var person = 'Mary';
    
    person.age = 22;
    
    person.method = function(){};
    
    console.log(person.age); //underfined
    
    console.log(person.method);//underfined

    通过上面代码可知,我们不能给基本类型添加属性与方法,再次说明基本类型是不可变的


    2.基本类型的比较是值的比较

    只有他们的值相等的时候他们才相等

    var a =1;
    
    var b = true;
    
    console.log(a==b);  //true

    有这个疑问,这就得了解一下类型转换和 == 运算符的知识了,也就是说在用==比较两个不同类型的变量是会进行一些类型转换,像上面的比较先会把true转换为1,再和数字1笔记,结果就是true了。这是当比较两个值的类型不同的时候的时候==运算符会进行类型转换,但是当两个值的类型相同的时候,即使是 == 也相当于 ===。

    3.基本类型的变量是存放在栈区的(栈区指内存里的栈内存)


    引用类型:除了基本类型就是引用类型,也就是说对象。对象是属性与方法的集合

    也就是说引用类型可以拥有属性与方法,属性又可以包含基本类型与引用类型。来看看引用类型的一些基本特性:

    1.引用类型的值是可变的

    我们可以为引用类型添加属性与方法,也可以删除其属性与方法。如:

    var person = {}; //创建一个对象 ---引用类型
    
    person.name = 'Mary';
    
    person.age = 22;
    
    person.sayName = function() {console.log(person.name);}
    
    person.sayName(); //'Mary'
    
    delete person.name;  //删除person对象的name属性
    
    person.sayName();  //underfined
    
    

    上面代码说明来引用类型可以拥有方法与属性,并且可以动态改变


    2.引用类型的值是同时保存在栈内存和堆内存中的对象

        js与其它语言不同,其不允许直接访问内存中的地址,也就是说不能直接操作对象的内存空间,那我们操作啥呢实际上,是操作对象的引用,所以引用类型的值是按引用访问的。

    准确的说,引用类型的存储需要内存的栈区和堆区(堆区是指内存里的堆内存)共同完成,栈区内存保存变量标识符和指向堆内存中该对象的指针,也就是说该对象在堆内存的地址。

    假如有以下几个对象:

    这三个对象在内存中保存的情况如下图:

    var person1 = {name: 'Mary'};
    var person2 = {name: 'xioaming'};
    var person3 = {name: 'xiaohua'};
    


    3.引用类型的比较是引用的比较

     

    var person1 = '{}';
    var person2 = '{}';
    console.log(person1 == person2);  //true

    上面讲基本类型的比较的时候提出里当两个比较值的类型相同的时候,相当于用 === ,所以输出是true;

    这里比较的是两个对象,为啥就不相等了呢:

    var person1 = {};
    var person2 = {};
    console.log(person1 ==person2);  //false
    
    

    ⚠️别忘了,引用类型是按引用访问的,换句话说,就是比较两个对象的堆内存的地址是否相同,那很明显,person1 和 person2在堆内存中地址是不同的


    所以这两个是完全不同的对象,所以返回false;


    3.简单赋值

    从一个变量向另一个变量赋值基本类型时,会在该变量上创建一个新值,然后再把该值复制到为新变量分配的位置上:

    var a =10;
    var b =a;
    a ++;
    console.log(a); //11
    console.log(b); //10
    
    

    此时,a中保存的值为10,当使用a来初始化b时,b中保存的值也为10,但b中的10与a中的是安全独立的,该值只是a中的值的一个副本,此后,这两个变量可以参加任何操作而相互不受影响。


    也就是说,基本类型在赋值操作后,两个变量是相互不受影响的。

    4.对象引用

    从一个变量向另一个变量赋值引用类型的值时,同样也会将存储在变量中的对象的值复制一份放到新变量分配的空间中,前面讲引用类型的时候提到过,

    保存在变量中的是对象在堆内存中的地址,所以,与简单赋值不同,这个值的副本实际上是一个指针,而这个指针指向存储在堆内存的一个对象,那么赋值操作后,两个变量都保存了同一个对象地址,则两个变量指向了同一个对象。因此,改变其中任何一个变量,都会相互影响:

    var a ={};
    var b = a;
    a.name = 'Mary';
    console.log(a.name); //'Mary'
    console.log(b.name);//'Mary'
    
    b.age = 22;
    console.log(b.age); //22
    console.log(a.age); //22
    console,.log(a==b);  //true

    引用类型的赋值其实是对象保存在栈区地址指针的赋值,因此两个变量指向同一个对象,任何操作都会相互影响。

    展开全文
  • javascript基本类型详解

    2021-01-19 18:20:21
    js中一共5个原始值,6个typeof能判断的,9个原生的内置... typeof不能区分出数组和对象,如何判断类型呢?使用Object.prototype.toString.apply()。  if(value&&typeof value ===’object’&&value.constructor ===
  • js基本类型

    千次阅读 2018-12-24 09:16:41
    ES5共有5种基本类型,分别为number,string,null,undefined,boolean,ES6新增了symbol. console.log(typeof undefined); 输出为undefined console.log(typeof null); 输出为object console.log(typeof [1]); 输出为...

    ES5共有5种基本类型,分别为number,string,null,undefined,boolean,ES6新增了symbol.

    console.log(typeof undefined); 输出为undefined

    console.log(typeof null); 输出为object

    console.log(typeof [1]); 输出为object

    console.log(typeof 1); 输出为number

    console.log(typeof "1"); 输出为string

    console.log(typeof true); 输出为boolean

    任何对象转化为布尔值时,if判断都为true,在js中,只有NaN,0,-0,“”,null,undefined这6个值转化为布尔值时,才为false.

    加new表示创建对象,不加new表示类型转换。

    var a = new Boolean(0);

    if(a){  //表示判断对象

    console.log(222);

    }

    可以正常输出

    if(undefined){ //判断boolean时,undefined为false

    console.log(222);

    }

    全局函数中,setTimeOut(),不是全局函数。decodeURI,encodeURI等都是全局函数。

    readonly属性只有在input(text/password)有效,而disabled对于所有的表单元素均有效,包括select,radio,checkbox,button等。

    document.getElementById("button").setAttribute("disabled",true);

    document.getElementById("button").disabled = true;
    ==符号判断相等的时候 如果一个值是null,一个值是undefined,则他们相等。

    如果一个值是数字,另一个值是字符串,则先将字符串转化为数字,然后再进行比较。

    如果其中有一个值为true,则将其转化为1再进行比较,如果其中有一个为false,则转为0再进行比较。

    如果有一个值为对象,另一个是数字或者字符串,则将对象转为原始值,再进行比较。

    console.log([ ]) ? true:false) 输出为true

    console.log([] == false ? true:false) 等价为console.log(0 == 0 ? true : false);  输出为true

    console.log({} == false) ? true : false) 等价为console.log((NaN == 0) ? true : false) 输出为false

    展开全文
  • 当我们把变量赋值给一个变量时,解析器首先要确认的就是这个值是基本类型值还是引用类型值 基本数据类型:数字(Number)、字符串(String)、布尔(Boolean)、空(Null)、未定义(Undefined) 引用数据类型:也就是...
  •  原始类型也称为基本类型或简单类型,因为其占据空间固定,是简单的数据段,为了便于提升变量查询速度,将其存储在栈(stack)中(按值访问)。其中,javascript基本数据类型包括Undefined、Null、Boolean、Number和...
  • 本文主要介绍了JavaScript基本类型值-Undefined、Null、Boolean的相关知识,具有很好的参考价值,下面跟着小编一起来看下吧
  • js 基本类型或引用类型的判断

    千次阅读 2018-01-10 22:34:14
    js基本类型有: null、undefined、string、number、Boolean和Symbol js的引用类型是:object 基本类型判断: null typeof null //输出:object undefined typeof x || typeof undefined //输出:...

    js数据类型分为:基本数据类型和引用数据类型,其中:
    js的基本类型有: null、undefined、string、number、Boolean和Symbol
    js的引用类型是:object

    基本类型判断:

    • null
    typeof null //输出:object
    • undefined
    typeof x || typeof undefined //输出:undefined
    • number
    typeof 1 //输出:number
    • string
    typeof 'js' //输出:string
    • boolean
    typeof true || typeof false //输出:boolean
    • Symbol
    typeof Symbol(2) //输出:Symbol

    注: null的类型判断为object,而不是null

    引用类型使用typeof判断的情况

    typeof [1,2] //数组,输出:object
    typeof {a:1,b:2} //对象,输出:object
    typeof new Number(2) //new Number(2),输出:object
    typeof function(){} //函数,输出:function

    注:

    • 函数的类型判断是function
    • 判断一个变量是不是对象,基本类型的判断用typeof,引用类型的判断用instanceof

    引用类型判断:

    • 数组
    [1,2] instanceof Object //输出:true
    • 对象
    var obj = {a:1,b:2} 
    obj instanceof Object //输出:true
    • 函数
    var fun = function(){} ;
    fun instanceof Object //输出:true
    • null
    null instanceof Object //输出:false

    注:通过instanceof可知,null不是引用类型

    展开全文
  • JavaScript基本数据类型

    万次阅读 2018-07-13 19:49:32
    JavaScript是弱类型脚本语言...JavaScript基本数据类型有如下五个(1)数值类型(2)布尔类型(3)字符串类型(4)Undefined类型(5)Null类型1. 数值类型与强类型语言如C、Java不同,JavaScript的数值类型不仅包括...
  • js基本类型与引用类型的区别

    千次阅读 2017-06-08 20:27:32
    首先JavaScript中的变量分为基本类型和引用类型。基本类型就是保存在栈内存中的简单数据段,而引用类型指的是那些保存在堆内存中的对象。 1、基本类型 基本类型有Undefined、Null、Boolean、Number 和String。...
  • JS基本类型与无法定义的属性

    千次阅读 2017-06-22 19:10:47
    在浏览器中,变量一旦声明为基本类型,则再也无法为其添加其他属性,示例如下:// 变量一旦声明为基本类型,则无法添加属性 var username = 'yiifaa' username.from = 'china' // 输出为undefined console.log...
  • 1、基本类型:我们知道基本的数据类型有:undefined,boolean,number,string,null.按值访问,可操作保存在变量中的实际的值。基本类型值指的是简单的数据段。 基本类型的值是不可变的:在从一个变量向另一个变量...
  • js基本类型 引用类型 简单赋值 对象引用,两个等号与三个等号的区别
  • js基本数据类型

    2017-09-12 11:27:44
    js基本数据类型:Undefined、Null、Boolean、Number、String。 1.undefined类型只有一个值,为undefined。使用var声明变量但未对其加以初始化,变量的值就为undefined。例如:var test;//test==undefined; 2.Null...
  • js基本类型

    2020-06-20 00:58:12
    js基本类型 1.普通基本类型:null , undefined, mysbol, number, string, boolean 2.特殊类型有:number, string, boolean 3.引用类型 : object, Function, Math, Array
  • 主要介绍了Javascript 关于基本类型和引用类型的个人理解,需要的朋友可以参考下
  • 理解JavaScript基本数据类型symbol

    千次阅读 2020-08-19 20:46:34
    并且除了null和undefined之外,每个基本类型都有其包装对象。 symbol 的值是通过 Symbol() 函数生成,每一个 symbol 的值都是唯一的,并且 symbol 类型的值可以作为对象的属性标识符使用,这也是 symbol 类型设计的...
  • js的基本数据类型 JavaScript中的数据类型共有六种 ...基本类型:字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined) 引用类型:对象(Object)、数组(Array)、函数(Function)
  • 这篇文章主要是从内存的角度来区分基本类型和引用类型的区别: 1、先了解内存分区(大家需要知道,定义的变量都是在内存中存放的) 内存是存储数据的,不同类型的数据要存储在不同的区域,即分类存放,不同的区域...
  • JavaScript基本类型中的数据可以是常量,也可以变量。由于JavaScript采用弱类型的形式,因而一个数据的变量或常量不必首先作声明,而是在使用或赋值时确定其数据的类型的。当然也可以先声明该数据的类型,它是...
  • javascript中存在着两种类型的数据:基本类型和引用类型。 基本类型简单的说就是简单的数据段。 引用类型是由多个值构成的对象。 当我们进行赋值操作时,解析器会首先分析数据是值类型还是引用类型。 两种访问方式...
  • 1.基本类型是存储在栈中的,但是一旦被闭包引用则成为常驻内存,会存在内存中。 2.复杂类型会存储在内存堆中。
  • js中的基本数据类型有六种:数值类型、字符型、布尔型、undefined类型、null类型、object。 数值类型 var a = 1; var a = 1.1; var a = -4; var a = 3e2; //3*10^2 var a = 3e-2; //3*10^(-2) var a = 065; //...
  • js中的基本类型和引用类型有哪些,有什么区别?】 每篇分享文从 【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】 八个方面深度解析前端知识/技能,本篇...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 404,994
精华内容 161,997
关键字:

js基本类型