精华内容
下载资源
问答
  • js的数据类型

    千次阅读 2018-08-19 17:08:56
    js中有六种数据类型,包括五种基本数据类型(Number,String,Boolean,Null,Undefined),和一种混合数据类型(Object)     二、知识剖析   Undefined Undefined只有一个值,即undefined值。使用var声明了...

    一、背景介绍

    数据类型

    js中有六种数据类型,包括五种基本数据类型(Number,String,Boolean,Null,Undefined),和一种混合数据类型(Object)

     

     

    二、知识剖析

     

    Undefined

    Undefined只有一个值,即undefined值。使用var声明了变量,但未给变量初始化值,那么这个变量的值就是undefined

     

    Null

    null类型被看做空对象指针,只有一个值,即null值, 如果定义的变量准备在之后保存一个对象,那需要将该变量保存为null值。

     

    String

    String用于表示零或多个16位Unicode字符组成的字符系列,字符串可以由双引号“”或单引号‘’表示,不过以双引号开头的字符串也必须以双引号结尾,单引号也是如此

    js中的字符串是不可改变的,也就是说字符串一旦创建,他的值就不能改变,要改变首先要销毁原来的字符串,然后在用另一个包含新值得字符串填充该变量

     

    Boolean

    Boolean类型是js中使用最多的一种类型,该类型只有两个字面值true和false

     

    Number

    number类型,字面量格式可以是十进制整数、八进制(八进制第一位必须是0)、十六进制(前两位必须是0x),

    浮点数值(就是包含一个小数点的数值,如果小数点后面没有跟任何数字,那么这个数值将作为整数值来保存)

    如果数值太大可以使用e表示法,用e表示数值等于e前面的数值乘以10的指数次幂

    var num=3.125e7 //等于31250000

    含义就是3.125乘以10的7次方

    NaN,非数字类型。涉及到的 任何关于NaN的操作,都会返回NaN

     

     

    Object

    js中对象是一组属性与方法的集合。这里就要说到引用类型了,引用类型是一种数据结构,用于将数据和功能组织在一起。引用类型有时候也被称为对象定义,因为它们描述的是一类对象所具有的属性和方法。

    object类型细分的话有:Object 类型、Array 类型、Date 类型、RegExp 类型、Function 类型 等。

     

    三大引用类型

    1.Object类型

    创建Object实例的方式有两种。

    第一种是使用new操作符后跟Object构造函数

    第二种方式是使用对象字面量表示法

     

    2.Array类型

    数组的每一项可以用来保存任何类型的数据,也就是说,可以用数组的第一个位置来保存字符串,第二个位置保存数值,第三个位置保存对象....另外,数组的大小是可以动态调整的。

     

    3.Function类型

    每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法。函数通常是使用函数声明语法定义的

     

    三、常见问题

    undefined和null的区别

     

    四、解决方案

    js诞生的时候只设置了null作为“无”的值。最初的设计是null是表示一个“无”的对象,转为数值时为0; | undefined表示“无”的原始值,转为数值时为NaN;undefined就是为了正式的区分空对象指针与未经初始化的变量,变量设置为null就是空对象指针,没有设置就是未经初始化!

     

    五、编码实战

     

     

    六、拓展思考

     

    typeof 操作符

    由于js中的变量是松散类型的,所以它提供了一种检测当前变量的数据类型的方法,也就是typeof

     

     

    七、参考文献

    JS中的六大数据类型

     

    八、更多讨论

    1、undefined和null的区别

         js诞生的时候只设置了null作为“无”的值。最初的设计是null是表示一个“无”的对象,转为数值时为0; | undefined表示“无”的原       始值,转为数值时为NaN;undefined就是为了正式的区分空对象指针与未经初始化的变量,变量设置为null就是空对象指             针,没有设置就是未经初始化!

    2、什么是typeof

          由于js中的变量是松散类型的,所以它提供了一种检测当前变量的数据类型的方法,也就是typeof 操作符

    3、Number有什么表现方法

         可以是十进制整数、

        八进制(八进制第一位必须是0)

         十六进制(前两位必须是0x)

         浮点数值(就是包含一个小数点的数值,如果小数点后面没有跟任何数字,那么这个数值将作为整数值来保存)

         如果数值太大可以使用e表示法,用e表示数值等于e前面的数值乘以10的指数次幂

         var num=3.125e7 //等于31250000

         含义就是3.125乘以10的7次方

         NaN,非数字类型。涉及到的 任何关于NaN的操作,都会返回NaN

    展开全文
  • JS的数据类型

    2017-07-01 12:37:35
    js里面的变量作用是用来存储数据的,js变量是弱类型的,并不像java等语言,在定义变量时需要声明变量类型,一旦...js里面基本的数据类型有5种。1.数字(number),2.字符串(string),3.布尔值(boolean),4.对象(obje...

    参看个人博客:http://www.zhuzhuman.com/nav-1/type-1/article/12.html

    js里面的变量作用是用来存储数据的,js变量是弱类型的。并不像java等语言,在定义变量时需要声明变量类型,一旦变量类型确定,当给这个变量附其他类型的值时会报错。

    js的变量可以多次赋值,也可以附不同数据类型的值,但是,根据使用习惯,尽量一个变量只定义一个数据类型。

    js里面基本的数据类型有5种。1.数字(number),2.字符串(string),3.布尔值(boolean),4.对象(object),5.未声明或未赋值或不存在的对象(undefined)。还有一种复杂数据类型:object;

    1. 查看变量的数据类型typeof

    js中查看数据类型的方法:typeof 需要查看的变量或值,或者typeof(需要查看的对象或值)。
    (注:typeof全部小写,后面加不加"()"都行)

    typeof 可以返回6个类型的值:string、number、function、boolean、object、undefined

    var a = 1;
    var b = "a";
    var c = function(){};
    var d = true;
    var e = {"name":"hot_cool","age":18};
    var f = [1,2,3];
    var g;
    var h = parseInt("abc");
    var i = null;
    console.log(typeof(a)); // number,数字
    console.log(typeof(b)); // string,字符串
    console.log(typeof c);  // function,函数
    console.log(typeof d);  // boolean,布尔值
    console.log(typeof e);  // object,对象
    console.log(typeof f);  // object,对象
    console.log(typeof g);  // undefined,未定义或未赋值
    console.log(typeof h);  // number,数字
    console.log(h);         // NaN,非数字
    console.log(typeof i);  // object,对象
    

    注:

    1. undefined: 未定义的变量,或未赋值的变量,或不存在的变量属于undefined;
    2. NaN: 非数字类型,但是NaN属于number,可用isNaN();来判断是否属于非数字。NaN不和任何值相等,包括NaN本身。NaN两个N大写,中间的a小写。
    3. boolean: 布尔值,我们常说的真假,真为1,假为0。只有这两个值。
    4. null: 空,属于object,但是判断null == undefined时返回true。判断null === undefined时为false;
    5. 真与假:
      真: true、非零数字、非空为真、非空对象,这些为真。
      假: false、数字0、空字符串、空对象、undefined,这些为假。

    2. 数据类型的转换

    2-1 parseInt() 转化为整数类型

    parseInt('123abc');     //123 可以将字符串转化为整数
    parseInt('001.23');     //1 可以将小数转化为整数。
    parseInt(1.23);         //1 可以将小数转化为整数。
    // 机制是,从左边起直到遇到第一个不是数字时停止(小数点也停止)。如果没有数字会变NaN
    

    2-2 parseFloat() 转化为小数

    parseFloat('1.23abc');     //1.23 
    parseFloat('01.23abc');    //1.23
    parseFloat('1.23.1');      //1.23
    // 从左边起,可以识别一个小数点,可以转化为小数。
    

    2-3 转化的类型

    2-3-1 强制转换

    parseInt、parseFloat属于强制转换。数学运算符"-"、"*"、"/"也属于强制转换。例:

    var a = 10;
    var b = '5';
    console.log(a - b)  // 5(数学运算,强行转化为number类型进行计算)
    console.log(a*b);   // 50(数学运算,强行转化为number类型进行计算)
    console.log(a/b);   // 2(数学运算,强行转化为number类型进行计算)
    console.log(a + b)  // 105(字符串拼接,没转化,而是进行了字符串拼接)
    // 为什么"+"不能转化,因为"+"在js里有两种含义:
        // 1.字符串就拼接。
        // 2.进行运算。
        // 当前这种情况是进行字符串拼接。
    
    2-3-2 隐式转换

    用于比较的"=="属于隐式转换,先比较,若类型不同,进行转化,然后再比较。

    var a = 5;
    var b = "5";
    a == b  // 为true; 
    a === b   // 为false;"==="为全等判断,不进行转换直接进行比较。不仅值要一样,类型也要一样,
    

    3 运算符

    3-1 算数运算符

    +、-、*、/、%、~ (加、减、乘、除、取模(即取余)、按位取反(所有正整数的按位取反是其本身+1的负数,所有负整数的按位取反是其本身+1的绝对值,零的按位取反是 -1)

    console.log(10%3);   //1 ,10除以3余数为1。
    console.log(~0);     // -1;
    console.log(~5);     // -6
    

    按位取反原理可参考 按位取反计算原理

     

    3-2 赋值运算符

    =、+=、-+、*=、/=、%= (等、加等、减等、乘等、除等、模等);

    var a = 1;
    console.log(a += 2);//输出3;a+=2 相当于a = a + 2;其余运算类似。
    

    3-3 关系运算符

    >、<、>=、<=、==、===、!=、!== (!是取反的意思。!=为不等。)

     

    3-4 逻辑运算符

    &&、||、! (!是非的意思,即取反)。

     

    3-5 运算符优先级

    括号优先:

    var a = 5;
    var b = 10;
    var c = "2";
    console.log(c + (a+b)) //215 ,先算a+b,再拼接字符串215;
    console.log(a + (b+c)) //5102,先拼接102,再拼接5102;
    

    注:由上可知,js中 “=” 是用来赋值的,"" 和 "=" 是进行比较的。

    展开全文
  • JS的数据类型 总体来说,JS的数据类型可以分为两大类 基本数据类型: string: 任意字符串 number: 任意数字(整数、小数) boolean: false/ true undefined: undefined null: null 引入数据类型 object: ...

     

    JS的数据类型

    总体来说,JS的数据类型可以分为两大类

    基本数据类型:

    string: 任意字符串

    number: 任意数字(整数、小数)

    boolean: false/ true

    undefined: undefined

    null: null 

    引入数据类型

    object: 任意对象

    Array: 一种特别的对象(数值下标属性,内部数据是有序的)

    Function:一种特别的对象(可以执行)

     以上就是JS的全部的基本数据类型,但是怎么判断一个值是什么数据类型呢??? 接下来将会详细讲解

    首先,可以通过typeof、instanceof、=== 来进行判断,但是,他们之间有什么区别呢? 每一种数据类型需要怎么判断呢?

    在判断数据类型的时候,你需要知道,typeof 返回的是数据类型的字符串表达,而instanceof返回的是一个boolean值,用于判断对象的具体类型

    首先,先对基本数据类型进行判断。

    undefined

          var a
          console.log(a, typeof a, typeof a === 'undefined', a === undefined) //undefined 'undefined'  true true
          console.log(undefined === 'undefined') // false

    这里注意,我们声明一个a,但是没有给他赋值,他的默认值为undefined。typeof a  返回的是'undefined',注意:这里是数据类型的字符串表达。 因为undefined的值只有一个,所以可以使用===进行直接比较。

    string、number、boolean

          a = 3
          console.log(typeof a === 'number') // true
    
          a = 'hello'
          console.log(typeof a === 'string') // true
    
          a = true
          console.log(typeof a === 'boolean') // true

    通过以上代码发现,string、number、boolean数据类型,只能通过typeof 进行判断

    null

          a = null
          console.log(typeof a, a === null) //object true

    在基本数据类型中,undefined和null很特殊,因为他们的值只有一个。但是typeof 判断null的类型,会返回object(后序会讲解为什么),通过===是可以判断null的数据类型的。

    对象类型的判断

    首先,先创建一个这样的对象

    var b = {
            b1: [1, 'abc', console.log],
            b2: function() {
              console.log('b3')
              return function () {
                return 'hello word'
                }
            }
          }

    这里大家可以思考一下,console.log是一个什么类型的数据(可以将自己的想法评论在下方)

     console.log(b instanceof Object, b instanceof Array) // true false

    通过instanceof可以判断b是对象类型,这里的Object和Array都是构造函数

    console.log(b.b1 instanceof Array, b.b1 instanceof Object) // true true
    console.log(typeof b.b1) // object

    b.b1是一个数组,可以看出数组也属于Object类型,数组是一种特殊的对象。但是不能通过typeof 来判断是否为数组

          console.log(b.b2 instanceof Function, b.b2 instanceof Object) // true true
          console.log( typeof b.b2 ==='function') // true

    b.b2  是一个函数,可以通过typeof来进行判断

    总结:经过以上代码研究,可以发现,typeof可以判断的数据类型有:string、number、boolean、function、undefined,但是不能判断null与object 、 Array和object。===可以判断undefined和null ,因为他们都只有一种值。

     


    基本数据类型中,undefined和null 都表示一个空值,那么他们有什么区别呢?????

    var data;
    console.log(data === undefined); //true

     当我们声明了一个变量,没有对其进行初始化时,他的值为undefined

    那么我们是否可以将一个值初始为undefined呢? 

    var data = undefined;
    console.log(data === undefined); //true

    显然是可以的! 一般而言,我们不存在需要显式地把一个变量设置为undefined值的情况,因为对于未经初始化的值默认就会取得undefined值,而已经初始化的值再将其赋值为undefined来表示空值是没有意义且不可取的。

     

    window.undefined

    从上面的例子我们可以看出,无论我们是否初始化过变量,都可以把变量赋值为undefined。

    其实这里用于赋值的undefined不是一个值,它是一个属性名,undefined是全局对象的一个属性,也就是说,它是全局作用域的一个变量,即window.undefined,而window.undefined这个属性的值才是前面所说的原始值undefined。

    data = undefined;这就相当于把一个变量window.undefined的值赋值给另一个变量data,这个值就是原始值undefined。

    console.log(window.undefined); //原始值undefined

    undefined的判断

    如何判断一个变量是否为undefined呢? 这里有两种方法

    1. 就是前面所说的使用严格相等符 === 

    2. 使用typeof,严格来说,需要以下方式

    var data;
    console.log(data === void 0); //true

     因为void运算符,会对给定的表达式求值,然后返回undefined,因此我们可以使用void 0,来代替undefined来进行判断。

    (function() {
        var undefined = 'not is undefined';
        console.log(undefined); //"not is undefined"
        console.log(typeof undefined) // "string"
    })()

    undefined的值是可以改变的,所以直接使用undefined会不安全。

    Null类型

    Null类型是第二个只有一个值的数据类型,这个特殊的值就是null。值 null 是一个字面量,它不像undefined 是全局对象的一个属性。

    但是为什么typeof null 的返回类型确实object呢? 原因有两个:

                一方面从逻辑角度来看,null值表示一个空对象指针,它代表的其实就是一个空对象,所以使用typeof操作符检测时返回”object”也是可以理解的。

               另一方面,其实在JavaScript 最初的实现中,JavaScript 中的值是由一个表示类型的标签和实际数据值表示的。对象的类型标签是 0。由于 null 代表的是空指针(大多数平台下值为 0x00),因此,null的类型标签也成为了 0,typeof null就错误的返回了”object”。在ES6中,当时曾经有提案为历史平凡, 将type null的值纠正为null, 但最后提案被拒了,所以还是保持”object”类型。

    null使用

    一般会在两个地方使用:

    初始赋值为null,表示该声明的变量将要赋值为对象

    结束前为null,表示将该对象变成垃圾对象,被垃圾回收器回收。

     

    以上就是我对JS数据类型的理解,如果有不对的地方,请大家及时指出!!!

     

    展开全文
  • js的数据类型有基本类型和引用类型 1.基本数据类型(BS3N) 1.Boolean(B) 2.String(S) 3.underfined(N) 4.Null(N) 5.Number(N) 6.symbol(ES6的) 基本数据类型都储存在栈中(stack),栈是有结构的,每个区块都是按照...

    js的数据类型有基本类型和引用类型

    1.基本数据类型(BS3N)

    1.Boolean(B)
    2.String(S)
    3.underfined(N)
    4.Null(N)
    5.Number(N)
    6.symbol(ES6的)
    基本数据类型都储存在栈中(stack),栈是有结构的,每个区块都是按照后进先出的方式次序存放,基本类型的数据相对是比较稳定的,占的内存也比较小,所有寻找速度比较快,如果基本类型复制的话,栈中重新开辟个新的内存空间来储存新复制的新值,所以两者是独立的,没有任何关联!

    2.引用数据类型(复杂类型)

    1.Array
    2.Object
    堆是没有结构的,数据可以任意存放,引用类型的值是储存在堆中(heap),但是栈内存中保存着一个堆内存的对象的引用,所以我们常常实际操作的是引用而不是操作实际的对象!你可以这么理解,栈中保存着一个地址,这个地址指向堆中的对象,如果复制的是引用类型,那么复制的是栈内存中的引用地址,两个引用地址指向的还是同一个对象!

    3.为什么基本数据类型存在栈中,而引用数据类型存在堆中呢?

    1.基本数据类型比较稳定,大小基本是固定的,占用的内存比较小
    2.堆比栈大,栈的速度比队快
    3.堆是无序的,栈的有序的
    4.引用数据类型的大小的不可控的,动态的,所以储存在堆中

    展开全文
  • 今天我想说的是 JS的数据类型转换。因为这一块自己之前是挺模糊的。主要原因我是归结于《Javascript高级程序设计》在这一块的描述太散,太拖沓。导致我没多大耐心去分析。但是,难啃的骨头终归还是要啃的,那么还不
  • js数据类型有哪些 JavaScript一共有8种数据类型: 7种基本数据类型: Undefined、Null、Boolean、Number、String、Symbol(es6新增,表示独一无二值) 和 BigInt(es10新增); 1种引用数据类型 Object(Object...
  • js中有六种数据类型,包括五种基本数据类型:(Number,String,Boolean,Undefined,Null),和一种复杂数据类型(Object)。 1.Number类型 Number类型包含整数和浮点数(浮点数数值必须包含一个小数点,且小数点后面...
  • 数据类型: 字符串 : 数字: 在js中number最大值Number.MAX_VALUE大概是10308次方 如果超过这个数,将显示为infinity(正无穷)当然也有负无穷 ,其type为Number 还有大于0最小值用Number.MIN_VALUE来...
  • mongodb11天之屠龙宝刀(九)js函数入门:MongoDB基于js的数据类型修改 原文连接:直通车 Mongodb并不提供Alter table这样的语句或者工具修改字段类型,只能写程序转。 数据类型 基本数据类型  MongoDB的...
  • 1.JS数据类型的分类 (1)基本数据类型(值类型) String、Boolean、Number、Undefined、Null、Symbol(ES6引入) (2)对象数据类型(引用类型) Array、Function、Object 2.JS数据类型的判断 (1)typeof 用来...
  • JS的数据类型/判断方法/栈与堆/深浅拷贝一、数据类型1、六种基本数据类型2、一种引用类型3、检测方法4、 undefined和null区别二、栈和堆1、定义2、定义三、浅/深拷贝1、基本概念2、数组/对象 一、数据类型 1、六种...
  • 数据类型强制转换 方法:1.parseInt( ) 2.parseFloat( ) 3.Number( ) ...把字符串类型(string)转换成数字类型(number)中整型int(不同数据类型之间变换); 1、对浮点数进行取整: ...
  • js的数据类型定义

    千次阅读 2018-01-24 22:27:52
     尽量不要在js中进行浮点数计算, 进制  包括二进制、八进制、十进制、十六进制 八进制以0开始,后面跟着八进制数字,在浏览器中输出永远是十进制 十六进制以0x开始,后面跟着十六进制数字  ...
  • js的数据类型有哪些

    千次阅读 2018-10-21 19:15:19
    真正的数据类型只有7种 : undefined、null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)、Symbol
  • js基本的数据类型 :数字类型,字符串型,布尔型,undefined,null ,对象类型,数组 1、数字类型(Number) 只有一种数字类型,数字 可以是小数 ,也可以的整数 以0开头 默认使用8进制来表示我的这个数字 以0x开头 ...
  • js 的数据类型 truly变量与false变量

    多人点赞 热门讨论 2020-08-27 21:46:02
    数据类型 值类型 1.Number Number类型包含整数和浮点数(浮点数数值必须包含一个小数点,且小数点后面至少有一位数字)两种值。 NaN:非数字类型。两大特点:1.涉及到 任何关于NaN操作,都会返回NaN。2. NaN不...
  • js的数据类型转换

    2011-11-23 16:29:53
    1、js数据类型:原始数据类型与引用数据类型;  原始数据类型分为:undefined、null、boolean、number、string  undefined——是指变量未初始化,函数无明确返回值  null——有值,但值为null与undefined相等 ...
  • JS的数据类型分为简单数据类型和复杂数据类型: 简单数据类型有:Undefined(未定义)、Null(空)、Boolean(布尔)、Number(数字)、String(字符串); 复杂数据类型有:Function(函数)、Array(数组)、...
  • js的数据类型及他们的内存图示

    千次阅读 2016-08-26 14:47:14
    栈:原始数据类型(undefined、boolean、null、Number、String等) 堆:引用类型(数组、对象、函数) 两种类型区别是:存储... 引用数据类型存储在堆(heap)中对象,占据空间大、大小不固定,如果存储在栈中,将会影
  • 第一部分、JS的常见数据类型,特别要注意的是JS中大小写要求很严格,一定要注意字段大小写。 1.字符串(String) 举例: var cellname = "Bill Gate";或者 var cellname = 'Bill Gate'; 2.数字...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,773
精华内容 11,109
关键字:

js的数据类型