JavaScript基础语法之数据类型

这里写图片描述

一、值

1、值

计算机程序的运行需要对值进行操作,在javascript中值被分成了两大类:基本数据类型和引用数据类型.取得并使用值是所有程序设计中的要点。

2、字面量

形如 1 2 3 4 5等直接使用的值 我们称之为字面量

二、变量

1、变量

当程序需要将值保存起来以备将来使用时,便将其赋值给一个变量。变量是一个值的符号名称。可以通过名称来获得对值的引用。

在几乎所有的编程语言中,我们都会使用变量来作为值的符号名。变量的名字又叫做标识符,其需要遵守一定的规则。ECMAScript的变量是松散型的(即可以用来保存任何类型的值)。通俗一点的说,每个变量仅仅是一个用于保存值的占位符而已。
注意!!在javascript中变量是没有类型的,只有值才持有类型。!!也就是说javascript不做类型强制;语言引擎不要求变量总是持有与其初始值同类型的值。一个变量可以现在被赋值为字符串类型值,随后又被赋值为数字类型值。这是javascript作为动态语言的一个优势

2、标识符

  1. 一个 JavaScript 标识符必须以字母、下划线(_)或者美元符号($)开头
  2. 不能以数字开头
  3. 不能使用关键字,保留字
    这里写图片描述
    这里写图片描述
  4. 标识符一般都采用驼峰命名法
    首字母小写,每个单词的开头字母大写,其余字母小写

代码示例:

<script type="text/javascript">

            /*
             * 标识符
             *  - 在JS中所有的可以由我们自主命名的都可以称为是标识符
             *  - 例如:变量名、函数名、属性名都属于标识符
             *  - 命名一个标识符时需要遵守如下的规则:
             *      1.标识符中可以含有字母、数字、_、$
             *      2.标识符不能以数字开头
             *      3.标识符不能是ES中的关键字或保留字
             *      4.标识符一般都采用驼峰命名法
             *          - 首字母小写,每个单词的开头字母大写,其余字母小写
             *          helloWorld xxxYyyZzz
             * 
             */
            /*var if = 123;

            console.log(if);*/


            //千万不要这么用
            var 锄禾日当午 = 789;
            console.log(锄禾日当午);


        </script>

3、声明变量

  1. 使用关键词 var。例如 var x = 42
    用 var 关键字声明的变量,如果没有赋初始值,则其值为 undefined
  2. 字面量形式(语法糖)
    直接使用 x=42;
    省略var声明的变量是全局变量。不推荐使用这种方式声明变量
  3. ECMAScript的变量是松散型的,即可以用来保存任何类型的值
  4. 我们也可以一次声明多个变量
var a=1,b=2,c,d=4;

代码示例:

<script type="text/javascript">
        //字面量
        console.log(1);

        //变量
        var a =1;
        a = a+1;
        console.log(a);

        //语义
        var age = 30;
        var age =31;
        console.log(age);
    </script>

三、数据类型

1、数据类型

数据类型是值的内部特征,它定义了值的行为,以使其区别于其他的值,JavaScript 中的变量本身是没有类型,变量持有的是所对应的值的数据类型。

2、数据类型分类

JavaScript语言可以识别下面 7 种不同类型的值:
六种基本数据类型:

boolean.  布尔值,truefalse.
null. 一个表明 null 值的特殊关键字。 
undefined.  变量未定义时的属性。
Number.  表示数字,例如: 42 或者 3.14159String.  表示字符串,例如:"Howdy"
Symbol ( 在 ECMAScript 6 中新添加的类型).。

还有引用数据类型(对象)

    数组
    函数
    Object

3、typeof运算符

1)语法

    typeof  a 
        or
    typeof (a)

2)描述

类型 结果
Undefined “undefined”
Null “object”
Boolean “boolean”
Number “number”
String “string”
Symbol (ECMAScript 6 新增) “symbol”
函数对象 “function”
任何其他对象 “object”

3)注意

    typeof null === "object"; // true

正确的返回结果应该是 “null” ,但这个 bug 由来已久,在 javascript 中已经存在了将近二十年,也许永远也不会修复,因为这牵涉到太多的 Web 系统,修复它会产生更多的 bug,会令许多系统无法正常工作。

4)在对变量执行 typeof 操作时,得到的结果并不是该变量的类型,而是该变量持有的值的类型,因为 JavaScript 中的变量没有类型。

4、六种基本数据类型

Undefined

undefined类型只有一个值,即undefined。未初始化的变量,都是undefined类型。

<script type="text/javascript">

            /*
             * Null(空值)类型的值只有一个,就是null
             *  null这个值专门用来表示一个为空的对象
             * 
             * Undefined(未定义)类型的值只有一个,就undefind
             *  当声明一个变量,但是并不给变量赋值时,它的值就是undefined
             */
            var a = null;

            var b = undefined;


        </script>

Null

null表示一个空对象指针,如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为null而不是其他值。

Boolean

布尔表示一个逻辑实体,可以有两个值:true 和 false。

<script type="text/javascript">

            /*
             * Boolean 布尔值
             *  布尔值只有两个,主要用来做逻辑判断
             *  true
             *      - 表示真
             *  false
             *      - 表示假
             */

            var bool = false;
            console.log(bool);


        </script>

Number

根据 ECMAScript 标准,JavaScript 中只有一种数字类型:基于 IEEE 754 标准的双精度数值。在其他编程语言中,有不同的数字类型存在,比如:整型,单精度浮点型,双精度浮点型等。但在javascript中只有Number类型,表示整数或者浮点数
Number类型中还有几个特殊的值:+Infinity,-Infinity 和 NaN (非数值,Not-a-Number)

<script type="text/javascript">

            /*
             * 在JS中所有的数值都是Number类型,
             *  包括整数和浮点数(小数)
             * 
             * JS中可以表示的数字的最大值
             *  Number.MAX_VALUE
             *      1.7976931348623157e+308
             * 
             *  Number.MIN_VALUE 大于0的最小值
             *      5e-324
             * 
             *  如果使用Number表示的数字超过了最大值,则会返回一个
             *      Infinity 表示正无穷
             *      -Infinity 表示负无穷
             *      使用typeof检查Infinity也会返回number
             *  NaN 是一个特殊的数字,表示Not A Number
             *      使用typeof检查一个NaN也会返回number
             */
            //数字123
            var a = 123;

            a = Number.MAX_VALUE * Number.MAX_VALUE;
            a = -Number.MAX_VALUE * Number.MAX_VALUE;
            console.log(a)//Infinity
            a = Infinity;


            a = "a"*"b";
            console.log(a)//NaN
            a = NaN;



            a = Number.MIN_VALUE;
            console.log(a)//5e-324 大于0的最小值




            /*
             * 在JS中整数的运算基本可以保证精确
             */
            var c = 1865789 + 7654321;

            /*
             * 如果使用JS进行浮点运算,可能得到一个不精确的结果
             *  所以千万不要使用JS进行对精确度要求比较高的运算    
             */
            var c = 0.1 + 0.2;

            console.log(c);


        </script>

String

JavaScript的字符串类型用于表示文本数据。
文本必须以双引号或单引号包围

<script type="text/javascript">

            /*
             * 数据类型指的就是字面量的类型
             *  在JS中一共有六种数据类型
             *      String 字符串
             *      Number 数值
             *      Boolean 布尔值
             *      Null 空值
             *      Undefined 未定义
             *      Object 对象
             * 
             * 其中String Number Boolean Null Undefined属于基本数据类型
             *  而Object属于引用数据类型
             */

            /*
             * String字符串
             *  - 在JS中字符串需要使用引号引起来
             *  - 使用双引号或单引号都可以,但是不要混着用
             *  - 引号不能嵌套,双引号不能放双引号,单引号不能放单引号
             */
            var str = 'hello';

            str = '我说:"今天天气真不错!"';

            /*
                在字符串中我们可以使用\作为转义字符,
                    当表示一些特殊符号时可以使用\进行转义

                    \" 表示 "
                    \' 表示 '
                    \n 表示换行
                    \t 制表符
                    \\ 表示\
             * */
            str = "我说:\"今天\t天气真不错!\"";

            str = "\\\\\\";

            console.log(str);

        </script>

Symbol
ES6引入了一种新的原始数据类型Symbol,表示独一无二的值。它是JavaScript 语言的第七种数据类型。

该类型的性质在于这个类型的值可以用来创建匿名的对象属性。该数据类型的值通常被用作一个对象属性的键, symbol 类型的键存在于各种内置的 JavaScript 对象中.

在 JavaScript 运行时环境中,symbol类型的值可以通过调用函数 Symbol() 创建。这个函数动态地生成了一个匿名,唯一的值。

<script>
    var sym1 = Symbol("foo");
    var sym2 = Symbol("bar");
    console.log(typeof sym1,sym1);
    console.log(sym1 === sym2,sym1,sym2);

    var eat = Symbol("eat");
    var obj ={
        name:"damu",
        wife:"zdy",
        [eat]:function () {
            console.log("eat")
        }
    }

    console.log(obj[eat]())


</script>

猜你喜欢

转载自blog.csdn.net/TDCQZD/article/details/81840052