ECMAScript的数据类型(详细)以及使用

本文详细介绍了JavaScript中的基本数据类型,包括number类型(涵盖Infinity和NaN)、字符串、布尔类型、undefined和null。讨论了数字运算的精度问题,提供了规避误差的方法,如toFixed。同时,提到了字符串的拼接、模板字符串以及一些常用的方法如length、indexOf等。此外,还阐述了undefined和null的区别及其在比较时的特殊性。
摘要由CSDN通过智能技术生成

目录

一、数字类型:number

二、字符串

三、布尔类型true  false

四、undefined

五、null


一、数字类型:number

1.用var声明变量,(  typeof 变量名  )用于查看数据类型

        var num =123;//数字类型的声明

        num = 12.3;//更改num变量的内容

        //typeof 用于查看数据类型

        console.log(typeof num);

2.InfinityNaN 都输入数字类型

infinity:

        var a=2/0;//  存的是结果,打印也是结果

        console.log(a);//返回Infinity,也是数字类型

        console.log(typeof a)

NaN:not a number,是数字类型但是不是数字,NaN与任何数值进行运算结果都是NaN

        var b="我"/1;//NAN:not a number

        console.log(b);

        console.log(typeof b);

        isNaN(b);

        注意:isNaN();方法:判断这个变量是不是NaN,是返回true 否则返回false。isNaN() 如果是数字,就直接比较,如果不是数字,则先将它转化成数字再进行比较,比如:console.log(isNaN("marry"));marry转化成数字是NaN类型 NaN=NaN,所以返回true

判断相等: console.log(NaN==NaN); //==是判断两个数字是否相等(NaN不与任何数据相等,包括自己)

拓展:JavaScript中不适合进行科学运算,底层的精度丢失,会造成误差(与Java小数二进制计算很像)

举例:

var d=0.1+0.2;

console.log(d);//输出0.30000000000004

如何规避?

①将它变成整数

        d=(0.1*10+0.2*10)/10;

        console.log(d);//规避误差(将它变成整数)

②使用函数 toFixed();  括号内是小数的位数

         // toFixed(n)//规避误差,保留n位小数

        d=0.1+0.2;

        console.log(d.toFixed(1));

二、字符串

1.声明:var str="内容";

        字符串:引号里面的内容(可以是单引号、双引号、反引号)

        var str="today";//双引号

        str ='天气';//单引号

        str =`good`;//反引号

        console.log(str);

        console.log(typeof str);//数据类型位string 字符串类型

2.字符串的拼接(此时的 +号 是作为拼接符号使用,而不是双目/单目运算符)

        var name="小明";

        var age="18";

        // 字符串拼接

        var c ="我是"+name+",今年"+age+"岁"

        console.log(c);

***模板字符串:只能用反引号,变量用 ${} 括起来,并且模板字符串可以解析回车换行、空格(保留格式)

var introduce=`我是${name},今年${age}岁`;

        console.log(introduce);

拓展1:在加号是双目运算符的情况写,一侧出现字符串,+号则作为拼接符使用

但是!!

举例:num=1+ +"1";//后面的加号表示的是正号  前面的是运算符(加法)

        //但是由于只有数字才说正负,所以会将后面的字符串变成数字,然后进行运算

        var num="1"+1;

        console.log(num);//打印11,字符串拼接

        console.log("1"+true );//转字符串拼接,返回的是 1true

拓展2:转义符 :\"  告诉浏览器这只是一个符号()双引号; \n 回车换号    \t tab空格    \r 回车  \b退格   \\即:\(反斜杠).引号内部不能嵌套相同的引号(如果非要用一样的引号,这时候就可以使用转义符啦)

var a1="我说\n \"今天天气真好啊\"";//引号内部不能嵌套相同的引号,使用转义符

        console.log(a1);

字符串的属性和方法:

1.length 获取字符串长度(中文和英文都是一默认一个字符,空格、标签符号都是一个字符)

         var str="今天星期二,abcabc"

        console.log(str.length);//返回12

2.indexOf(参数1,[参数2])  中括号中内容可以省略,参数1:要查找的字符串   参数2:查找开始的位置。 indexOf(参数1,[参数2])作用:返回 字符串(首字符)所在的 位置(下标),从0 开始,找不到则返回-1

        var str="今天星期二,abcabc"

        console.log(str.indexOf("ab",1));//返回:6

3.charAt() 返回该位置上的字符,没有则返回空字符 不是null 也不是空格 就是没有

var str="今天星期二,abcabc"

console.log(str.charAt(3));//返回:期

4.slice(start,[end])  用于截取字符串,不会影响原字符串,前闭后开(左闭右开),可以只写start(从第n位开始到最后结束)

        var str="今天星期二,abcabc"

        var str2=str.slice(2,5)

        console.log(str2);

5.toLocaleLowerCase()将字符串全部转换位小写,不会影响原字符串

        str="ABCDe";

        console.log(str.toLocaleLowerCase());//不会影响原字符串

6.toLocaleUpperCase()全部转换为大写

        str="ABCDce";

        console.log(str.toLocaleUpperCase());

7.split(分隔符) 分隔,但是会将字符串转换为数组

        str3="ABCDE";

        var arr=str3.split("C") //把C作为分隔符

        console.log(arr);//["AB","DE"]

8.trim()  去掉字符串前后的空格,不能去掉中间的空格

        str="   ab c     ";

        console.log(str.trim());//ab c

9.substring()  截取字符串,前闭后开,和slice使用方式相同

        str="abcdefg";

        console.log(str.substring(2,4));//cd

三、布尔类型true  false

 <script>

        console.log("----boolean-------");

        // true  false,只有两个值

        var bool=true;//声明

        bool =false;

        console.log(typeof bool);

    </script>

四、undefined

undefined的数据类型:undefined:"缺少值" 此处应该有值,但是没有

var a=undefined;

        console.log(typeof a);//undefined

 var b;

        console.log(b);//undefined

五、null

null类型的数据:null:表示没有对象,此处不应该有值

var n=null;

        console.log(n);

        console.log(typeof n);//object

拓展:undefined与null的比较

console.log(undefined==null);//true 比较值 在值的层面来说,是相等的,都是空置

        console.log(undefined===null);//false 比较值和数据类型(严格相等),undefined数据类型和null数据类型不等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值