• 微信号
目录

javascript基础

您当前的位置:首页 > 我的笔记 > javascript基础>javascript数据类型

javascript数据类型

数据类型介绍

javascript有5种简单数据类型:undefined、null、boolean、number和string。还有一种复杂数据类型——object

javascript不支持任何创建自定义类型的机制,所有值都成为以上6中数据类型之一

ypeof操作符

typeof操作符是用来检测变量的数据类型。对于值或变量使用typeof操作符会返回如下字符串

字符串 描述
undefined 未定义
boolean 布尔值
string 字符串
number 数值
object 对象或null
function 函数

实例

    <script type="text/javascript">
        // 检测 1 是什么类型数据,结果为 number
        document.write(typeof 1)
    
        let userName = '张三';
        // 检测 userName 是什么类型数据
        alert(typeof userName);
        alert(typeof '前端开发');
    </script>

typeof操作符可以操作变量,也可以操作字面量。虽然也可以这样使用:typeof(userName),但,typeof是操作符而非内置函数

ps:函数在javascript中是对象,不是一种数据类型。所以,使用typeof来区分function和object是非常有必要的

undefined类型

什么是undefined

undefined类型只有一个值,即特殊的undefined。只声明变量,不赋值的情况下,变量的默认值为 undefined,一般很少直接为某个变量赋值为 undefined

实例

    <script>
        // 只声明了变量,并末赋值
        let tmp;
        document.write(typeof tmp) // 结果为 undefined
    </script>

使用场景:如,开发中经常声明一个变量,等待传送过来的数据

数值类型number

什么是number类型

number类型包含两种数值:整型和浮点型。为了支持各种数值类型,javascript定义了不同的数值字面量格式。

即我们数学中学习到的数字,可以是整数、小数、正数、负数

实例

    <script>
    let score = 100 // 正整数
    let price = 12.345 // 小数
    let temperature = -40 // 负数

    document.write(typeof score) // 结果为 number
    document.write(typeof price) // 结果为 number
    document.write(typeof temperature) // 结果为 number
    </script>

浮点类型

浮点类型,就是该数值中必须包含一个小数点,并且小数点后面必须至少有一位数字

注意:由于保存浮点数值需要的内存空间比整型数值大两倍,因此javascript会自动将可以转换为整型的浮点数值转成为整型

    <script>
        let x=3.7
        let x=0.8
        let x=.8  //有效,但不推荐此写法
        let x=6.  //小数点后面没有值,转换为8
        let x=12.0  //小数点后面为0,转换成12
    </script>

注意JS 是弱数据类型,变量到底属于那种类型,只有赋值之后,我们才能确认

NaN

NaN,即非数值(Not a Number)是一个特殊的值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)。JavaScript提供了isNaN()函数,用来判断这个值到底是不是NaN。isNaN()函数在接收到一个值之后,会尝试将这个值转换为数值

实例

    <script>
        alert(isNaN(NaN)); //true
        alert(isNaN(20)); //false,20是一个数值
        alert(isNaN('25')); //false,'25'是一个字符串数值,可以转成数值
        alert(isNaN('Lee')); //true,'Lee'不能转换为数值
        alert(isNaN(true)); //false,true可以转成成1
    </script>

字符串类型string

string类型的介绍

string类型用于表示由于零或多个16位Unicode字符组成的字符序列,即字符串。字符串可以由双引号(")或单引号(')表示。这两种表示方法没有任何区别。但要记住的是,必须成对出现,不能穿插使用,否则会出错

javascrupt中的字符串是不可变的,也就是说,字符串一旦创建,它们的值就不能改变。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量。

注意事项

  1. 无论单引号或是双引号必须成对使用
  2. 单引号/双引号可以互相嵌套,但是不以自已嵌套自已
  3. 必要时可以使用转义符 \,输出单引号或双引号

字符串拼接

+ 运算符 可以实现字符串的拼接。

实例

    <script> 
        let user_name = '小明' // 使用单引号
        let gender = "男" // 使用双引号
        let age = '18' // 看上去是数字,但是用引号包裹了就成了字符串了
        let str = '' // 这种情况叫空字符串
        document.write(typeof user_name) // 结果为 string
        document.write(typeof gender) // 结果为 string
        document.write(typeof str) // 结果为 string
        document.write(user_name + '有' + age + '岁了!' + '是很有\"激情\"的人')
    </script>

模板字符串

使用场景:拼接字符串和变量

在没有它之前,要拼接变量比较麻烦

    <script>
    document.write(user_name + '有' + age + '岁了!')
    </script>

语法

``(反引号)

在英文输入模式下按键盘的tab键

内容拼接变量时,用 ${ } 包住变量

    <script>
    document.write(`${user_name}有${age}岁了!`)
    </script>

布尔类型boolean

什么是boolean类型

表示肯定或否定时在计算机中对应的是布尔类型数据。

它有两个固定的值true false,表示肯定的数据用 true(真),表示否定的数据用 false(假)。

true不一定等于1,false不一定等于0。JavaScript是区分大小写的,True和False或者其他都不是Boolean类型的值。

实例

    <script>
        //明天是否会下雨,回答 是 或 否
        let num = true //是,会下雨
        num = false //否,不会下雨
        document.write(typeof isCool) // 结果为 boolean
    </script>

空类型null

什么是null

null类型是一个只有一个值的数据类型,即特殊的值null。它表示一个空对象引用(指针),而typeof操作符检测null会返回object

JavaScript 中的 null 仅仅是一个代表“无”、“空”或“值未知”的特殊值

实例

    <script>
        var box = null;
        alert(typeof box);
        alert(undefined == null); //true
    </script>

说明:undefined是派生自null的,因此JavaScript规定对它们的相等性测试返回true。由于undefined和null两个值的比较是相等的,所以,未初始化的变量和赋值为null的变量会相等。这时,可以采用typeof变量的类型进行比较。但,建议还是养成编码的规范,不要忘记初始化变量。

null 和 undefined 区别:

undefined 表示没有赋值

null 表示赋值了,但是内容为空