zoukankan      html  css  js  c++  java
  • JavaScript数据类型

    概述

    JavaScript是通过ECMAScript伪语言进行描述的,ECMA-262第3版是目前浏览器实现最多的版本,第5版是未来浏览器要实现的版本

    语法风格

    Javascript语法风格类C语言,区分大小写

    标识符

    标识符即变量、函数、属性的名字而已,Javascript中标识符的命名规则如下:

    ① 首字符必须是字母或下划线或美元符号

    ② 其他字符可以是字母、下划线、美元符号

    ③ 标识符采用驼峰大小写格式,即第一个字母小写,其他每个有意义单词的首字母大写,例如firstChar

    注释方法

    由于Javascript语言类C,所以,它也使用C语言注释风格,包括单行注释和多行注释

    1 //单行注释
    2 
    3 /*多行注释
    4 
    5 
    6  */

    严格模式

    ECMAScript在第5版中引入了严格模式。在严格模式下,Javascript将执行一种不同的解析与执行模型,之前的一些不确定行为将得到处理或错误提示。可以在整个脚本中使用严格模式,亦可以在指定的函数中使用严格模式,只需要将"use strict" 放在它们的前面即可

    变量

    根据ECMA-262定义,Javascript的变量是弱类型的,它只是在特定时间用于保存特定值的一个名字而已。变量的值及其数据类型都可能在执行过程中改变,即Javascript中的变量可以用来保存任何类型的数据,变量的定义格式:

    1 var someValue;  //未经初始化,默认保存了undefined值
    2 var messages="Hello World!"; //定义变量,并直接初始化为Hello World!
    3 var messages=120;            //更改变量的值和类型

    PS:使用var操作符定义的变量属于局部变量

    变量类型

    ECMAScript变量的值分两种类型:基本类型值和引用类型值

    基本类型值:简单的数据段

    引用类型值:由多个值构成的对象

    存储基本类型值的数据类型有:Undefined、Null、Boolean、Number、String

    PS:JavaScript不支持任何自定义类型

    基本类型值和引用类型值的区别:

    ①引用类型值可以动态的添加属性,而基本类型值则不可以

    ②基本类型值复制时是创建新的副本进行赋值,而引用类型值复制的是一个指针,还是指向原来的值

    ③在给函数传递参数时,赋值方式与变量赋值原理相同

    检测类型

    因为Javascript是松散类型的,所以需要一种机制来检测给定变量的类型,检测方法有两种:

    基本类型检测用typeof操作符

    引用类型检测用instanceof操作符

    undefined类型

    undefined类型,只有一个值即undefined,在使用var定义变量但不初始化时候,这个变量默认值就是undefined值。需要注意的是包含undefined值的变量与尚未定义的变量是不一样的。对于尚未定义的变量只能进行一项操作,即使用typeof操作来检测其类型,但是对于尚未定义的变量和未初始化的变量执行typeof操作符,它们返回的结果是一样的,都是undefined值

    null类型

    null类型,也只有一个值,即null。从逻辑上讲null值表示一个空对象指针。所以检测它类型时返回"object"

        var car=null;
        alert(typeof car);

    如果定义的变量,将来用于存储对象,最好将它初始化为null

    boolean类型

    boolean类型是Javascript中使用最多的一种类型,它只有两个值:true和false,但它们不一定等于1和0

    虽然boolean类型只有两个值,但是JavaScript中的所有类型都可以与这个两个值进行转换后等价,可以调用转型函数来完成

    可以对任何数据类型的值调用转型函数Boolean(),返回结果取决于要转型的数据类型和实际值,规则如下:

    数据类型 转换为true的值 转换为false的值
    Boolean true false
    String 任何非空字符串 空字符串
    Number 任何非0数值(包括无穷大) 0或Nan
    Object 任何对象 null
    Undefined N/A(不实用) Undefined

    理解这些转换规则对于控制流程语句至关重要

    number类型

    number类型采用了IEEE754格式来表示整数和浮点数。各种字面量的表示方法如下

    ①十进制

    var intNum=55;  //十进制整数,和我们日常一样的用法

    ②八进制

    var octalNum1=010; //前导为0,八进制表示法,如果超出范围前导0被忽略
    var octalNum2=079 //实际被解析为79

    ③十六进制

    var hexNum1=0xA; //十六进制

    需要注意的是,无论是八进制还是十六进制,在进行算术计算时,它们的数值最终都被转换成十进制

    关于浮点数的处理

    浮点数是必须包含一个小数点的数值,并且小数点后面至少有一位数字,Javascript中存储浮点数的内存空间是存储整数的两倍,并且JavaScript会自动将某些浮点数转换成整数nan

    NaN类型

    NaN,即非数值(Not a Number)是一个特殊的值,它表示本来要返回数值的操作数却未返回数值。它有两个特点

    ①任何涉及NaN的操作都被返回NaN

    ②NaN与任何值都不相等

    Javascript定义了一个NaN函数,它接受一个参数,用来确定这个参数是否是:“非数值”

  • 相关阅读:
    vue2.0 练习项目-外卖APP(2)
    vue2.0 练习项目-外卖APP(1)
    迈向全栈开发学习(3)
    迈向全栈开发学习(2)
    迈向全栈开发学习(1)
    前端到后台ThinkPHP开发整站(完)
    前端到后台ThinkPHP开发整站(7)
    前端到后台ThinkPHP开发整站(6)
    前端到后台ThinkPHP开发整站(5)
    uniapp 设置全局scss生效
  • 原文地址:https://www.cnblogs.com/tao-zi/p/4086445.html
Copyright © 2011-2022 走看看