JS数据类型—基本概念、数据类型强制转换

一、数据类型基本概念

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

1 String 字符串

1.1 String基础知识

  • 在JS中字符串需要使用引号引起来;
  • 使用双引号或单引号都可以,但是不要混着用;
  • 引号不能嵌套,双引号不能放双引号,单引号不能放单引号;
var str = 'hello';  // 声明一个变量str并给其赋值hello
console.log(str)  // 控制台输出str的内容

// 修改变量str的值为'我说:"今天天气真不错!"'
str = '我说:"今天天气真不错!"'; // 会修改掉原来str的值
console.log(str)

1.2 String转义

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

  • \" => 表示 "
  • \’ => 表示 ’
  • \n => 表示换行
  • \t => 制表符
  • \ => 表示\
str = "我说:\"今天\t天气真不错!\"";			
str = "\\\\\\";
//输出字面量 字符串str
alert("str");

1.3 String拼接

字符串拼接有两种形式:使用+拼接;使用模板字符串

var a = "孙悟空";
var b = "我是"+a;
console.log(b);
var c = `我是${a}`;
console.log(c);

2 Number 数值型

  • 在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
var a = 123;  //数字123
var b = "123";  //字符串123
/*
    可以使用一个运算符 typeof来检查一个变量的类型
    语法:typeof 变量	
    检查字符串时,会返回string
    检查数值时,会返回number
*/
// console.log(typeof b);
a = -Number.MAX_VALUE * Number.MAX_VALUE;
a = "abc" * "bcd";
a = NaN;
// console.log(typeof a);
a = Number.MIN_VALUE;
//console.log(a);

// 在JS中整数的运算基本可以保证精确
var c = 1865789 + 7654321;
/*
 * 如果使用JS进行浮点运算,可能得到一个不精确的结果
 * 	所以千万不要使用JS进行对精确度要求比较高的运算	
 */
var c = 0.1 + 0.2;
console.log(c);

3 Boolean 布尔值

  • Boolean布尔值:布尔值只有两个,主要用来做逻辑判断
    • true - 表示真
    • false - 表示假
  • 使用typeof检查一个布尔值时,会返回boolean
var bool = false;	
console.log(typeof bool);
console.log(bool);

4 Null 空值 和 Undefined 未定义

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

二、数据类型转换

强制类型转换

  • 指将一个数据类型强制转换为其他的数据类型
  • 类型转换主要指,将其他的数据类型,转换为String、Number、Boolean

1 其他的数据类型转换为String

  • 将其他的数据类型转换为String
  • 方式一:
    • 调用被转换数据类型的toString()方法
    • 该方法不会影响到原变量,它会将转换的结果返回
    • 但是注意:null和undefined这两个值没有toString()方法,如果调用他们的方法,会报错
  • 方式二:
    • 调用String()函数,并将被转换的数据作为参数传递给函数
    • 使用String()函数做强制类型转换时,对于Number和Boolean实际上就是调用的toString()方法
  • 但是对于null和undefined,就不会调用toString()方法,它会将 null 直接转换为 “null”,将 undefined 直接转换为 “undefined”。
//调用toString()方法,来将a转换为字符串
var a = 123; // 数值转String
a = a.toString();
a = true; // 布尔转String
a = a.toString();
a = null; // null转String
a = a.toString(); //报错
a = undefined;  // undefined转String
a = a.toString(); //报错

//调用String()函数,来将a转换为字符串
a = 123;
a = String(a);
a = null;
a = String(a);
a = undefined;
a = String(a);
console.log(typeof a);
console.log(a);

2 其他的数据类型转换为Number

2.1 数据转换

  • 将其他的数据类型转换为Number

  • 转换方式一:

  • 使用Number()函数

  • 字符串 --> 数字

    • 1.如果是纯数字的字符串,则直接将其转换为数字
    • 2.如果字符串中有非数字的内容,则转换为NaN
    • 3.如果字符串是一个空串或者是一个全是空格的字符串,则转换为0
  • 布尔 --> 数字

    • true 转成 1
    • false 转成 0
  • null --> 数字 0

    扫描二维码关注公众号,回复: 10130188 查看本文章
  • undefined --> 数字 NaN

  • 转换方式二:

    • 这种方式专门用来对付字符串
    • parseInt() 把一个字符串转换为一个整数
    • parseFloat() 把一个字符串转换为一个浮点数
//调用Number()函数来将a转换为Number类型
var a = "123";
a = Number(a);   // 123
a = false;
a = Number(a);  // 0
a = null;
a = Number(a);  // 0
a = undefined;
a = Number(a);  // Nan
//调用parseInt()函数将a转换为Number
a = "123567a567px";
// parseInt()可以将一个字符串中的有效的整数内容去出来,然后转换为Number
a = parseInt(a);
// parseFloat()作用和parseInt()类似,不同的是它可以获得有效的小数
a = "123.456.789px";
a = parseFloat(a);
// 如果对非String使用parseInt()或parseFloat(),它会先将其转换为String然后在操作
a = true;
a = parseInt(a);
a = 198.23;
a = parseInt(a);
console.log(typeof a);
console.log(a);

2.2 数值进制

  • 在js中,如果需要表示16进制的数字,则需要以0x开头
  • 如果需要表示8进制的数字,则需要以0开头
  • 如果要要表示2进制的数字,则需要以0b开头
  • 但是不是所有的浏览器都支持
//十六进制
a = 0x10;
a = 0xff;
a = 0xCafe;
//八进制数字
a = 070; //像"070"这种字符串,有些浏览器会当成8进制解析,有些会当成10进制解析
//二进制数字
a = 0b10;

a = "070";
//可以在parseInt()中传递一个第二个参数,来指定数字的进制
a = parseInt(a,10);
console.log(typeof a);
console.log(a);

3 其他的数据类型转换为Boolean

  • 将其他的数据类型转换为Boolean
  • 使用Boolean()函数
  • 数字 —> 布尔
    • 除了0和NaN,其余的都是true
  • 字符串 —> 布尔
    • 除了空串,其余的都是true
  • null和undefined都会转换为false
  • 对象也会转换为true
// 数值转布尔值
var a = 123; //true
a = -123; //true
a = Infinity; //true
a = NaN; //false
a = 0; //false
// 调用Boolean()函数来将a转换为布尔值
a = " "; // ture
a = null; //false
a = undefined; //false
a = Boolean(a);
console.log(typeof a);
console.log(a);
// 数值转布尔值
var a = 123; //true
a = -123; //true
a = Infinity; //true
a = NaN; //false
a = 0; //false
// 调用Boolean()函数来将a转换为布尔值
a = " "; // ture
a = null; //false
a = undefined; //false
a = Boolean(a);
console.log(typeof a);
console.log(a);
发布了20 篇原创文章 · 获赞 11 · 访问量 1738

猜你喜欢

转载自blog.csdn.net/qq_16221009/article/details/103986152