数据类型及强制转换

字面量和变量

  • 字面量: 都是一些不可改变的值 如 1 2 3
    • 字面量都是可以直接使用,但是我们一般不会直接使用字面量
  • 变量
    • 变量可以用来保存字面量,而且变量的值是可以任意改变的
    • 变量更加方便我们使用,所以在开发中都是通过变量去保存一个字面量,很少使用字面量
  • 声明变量:
    • 在JS中使用var关键字来声明一个变量
    • 为变量声明且赋值 var a=123;

标识符

  • 概念: 在JS中所有的可以我们自主命名的都可以称为标识符 例如:变量名、函数名、属性名都属于标识符

  • 命名一个标识符需要遵守如下的规则:

    • 1.标识符中可以含有字母、数字、_ 、$

    • 2.标识符不能以数字开头

    • 3.标识符不能是ES中的关键字或保留字

      • 在这里插入图片描述
    • 4.标识符一般都采用驼峰命名法

      首字母小写,每个单词的开头字母大写,其余字母小写 helloWorld

  • **JS底层保存标识符时实际上是采用Unicode编码,所以从理论上说,所有的utf-8中所含的内容都可以作为标识符 **


数据类型

  • 数据类型指的是字面量的类型
  • 在JS中一共有六种数据类型
    • String 字符串
    • Number 数值
    • Boolean 布尔值
    • Null 空值
    • Undefined 未定义
    • Object 对象

字符串

  • 其中String Number Boolean Null Undefined属于基本数据类型 而Object属于引用数据类型

  • String字符串

    • 在JS中字符串要使用引号引起来

    • 使用单引号和双引号都行,但是不要混着用

    • 引号不能嵌套,双引号不能放单引号,单引号不能放双引号

    • 在字符串中可以使用 \ 作为转义字符

      当表示一些特殊符号时使用 \ 进行转义

      \" 表示一个 " , \' 表示一个 ' , \n 换行 , \t 制表符 ,\\ 表示 \


Number类

  • 在JS中所有的数值都是Number类 包括整数和浮点数(小数)

  • typeof 用法 返回一个变量的类型

    • var a=123; var b="123";

      console.log(typeof a) 返回 number

      console.log(typeof b) 返回String

  • **Number.MAX_VALUE ** JS中可以表示的数字的最大值

    • Number.MAX_VALUE : 1.7976931348623157e+308
    • 当然Number.MAX_VALUE 也不是最大的数字 如果使用Number表示的数字超过了最大值,则会返回一个Infinity(正无穷)
    • 使用typeof检查Infinity也会返回 Number
  • Number.MIN_VALUE 返回 5e-324(科学记数法) 大于0的最小值

  • NaN 是一个特殊的数字 表示 not a Number

    • a= "abc" * "ccb";

      console.log(a) 返回NaN

      console.log(typeof a) 返回Number

  • 在JS中的整数运算基本可以保证精确

    • 如果使用JS进行浮点元素,可能得到一个不精确的结果 如1/3,这在所有语言中都有这个问题
  • JS中其他进制的数字

    • 十六进制 以0x开头 a=0x123;

    • 八进制 以0开头 a=020;

    • 二进制 以0b开头 a=0b11;

    • 注意 : 像"070"这样的字符串,有些浏览器会当8进制解析,有些浏览器会当作10进制来解析

      可以在parseInt()中传递一个第二个参数,来指定数字的进制

      var a="070"

      a=parseInt(a,10);


布尔值Boolean

  • true 逻辑 真
  • false 逻辑 假

Null和Undefined

  • Null(空值)类型的值只有一个 就是Null
    • null这个值专门用来表示一个空的对象
    • 用typeof检查一个null值时,会返回object
  • Undefined(未定义)类型的值只有一个,就undefined
    • 当声明一个变量,但是并不给变量赋值,它的值就是undefined
    • 使用typeof检查 一个undefined时也会返回undefined

强制类型转换

  • 指的是 将一个数据类型转换为其他数据类型

  • 类型转换主要指,将其他数据类型,转换为

    • String Number Boolean

    转换为String

    • 方式一

      • 调用被转换数据类型的toString()方法

      • 该方法不会影响到原变量,它会将转换的结果返回

      • var a=123;

        a.toString();

        console.log(typeof a); 还是返回Number类的

        a=a.toString();

        console.log(typeof a); 这次返回String类的

      • 但是注意:null和undefined这两个值没有toString()方法,如果调用会报错。

    • 方式二:

      • 调用String()方法,并将转换的数据作为参数传递给函数

      • var a=123;

        a=String(a)

      • 使用String() 函数做强制类型转换时

        • 对于Number和Boolean实际上就是调用的toString()方法

        • 但是对于null和undefined,就不会调用toString()方法

          ​ 它会将null转换为 “null”

          ​ 将undefined直接转换为 “undefined”

    转换为Number

    • 方式一:

      • 使用Number()函数

        • String --> Number

          ​ 1.如果是纯数字的字符串,则直接将其转换为数字

          ​ 2.如果字符串中有非数字的内容,则转换为NaN

          ​ 3.如果字符串是 一个空串 或者 一个全是空格的字符串,则转换为0

        • Boolean --> Number

          • true 转成1

            false 转成0

        • null --> Number

          • null 转成 数字0
        • Undefined --> Number

          • undefined 转成 数字NaN
    • 方式二 : 这种方式专门对付字符串

      • parseInt() 把一个字符串转换为一个整数

        • parseInt() 可以将一个字符串中有效的整数内容取出来 然后转换为Number

          • var a="123px"; a=parseInt(a); console.log(a); 输出123

            ​ 但是 a=Number(a); console.log(a) 输出NaN

          • parseInt() 也有缺点 ,不能取出字母中间的数字,从左开始检索,一旦遇到字母就停止 如

            • var a="123a456px"; a=parseInt(a) console.log(a); 返回结果还为123
      • parseFloat() 把一个字符串转换为浮点数

        • parseFloat()parseInt()区别在于前者可以获得有效的小数
      • 如果对非String使用parseInt()或parseFloat() 它会先将其转换为String然后操作

    转换为Boolean

    • 使用Boolean()函数

      • Number --> Boolean
        • 除了0和NaN,其余的都是true
      • String --> Boolean
        • 除了空串,其余的都是true
      • null 和 undefined 都会转换为false
      • Object 都会被转化为true
    • 方式二(隐式类型转换):

      • 把任意的数据类型做两次非运算,即可将其转换为布尔值

        • var a="world";

          a=!!a; // true


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值