美文网首页
02-JS基础-数据类型

02-JS基础-数据类型

作者: xiaohan_zhang | 来源:发表于2018-05-08 16:54 被阅读0次
  • 数据的计量单位
1 B(Byte字节) = 8 bit(位)
1 KB(KByte) = 1024 B
1 MB = 1024 KB
1 GB = 1024 MB
1 TB = 1024 GB
数据类型
  • JS中的六种数据类型

String    字符串 (基本数据类型)
Number   数值 (基本数据类型)
Boolean   布尔值 (基本数据类型)
Null     空值 (基本数据类型)
Undefined  未定义 (基本数据类型)
Object     对象 (引用数据类型)

  • 查看数据类型
    使用 typeof 操作符可以用来检查数据类型, 会将检查的结果以字符串的形式返回给我们。
    使用格式:typeof 数据,例如 typeof 123; typeof num;
console.log(typeof 123); // number
var num = 10;
console.log(typeof num); // number
  • String字符串
    字符串需要使用 ' 或 " 括起来。
    相同引号不能嵌套,不同引号可以嵌套。
var str1 = "hello";
var str2 = 'world';

var str3 = "hello "world""; // 错误
var str4 = 'hello 'world ''; // 错误
var str5 = "hello 'world'"; // 正确
var str6 = 'hello "world"';// 正确

// 不想''和 "" 混用,可以用转义字符
console.log('我说:"今天天气不错"');  // 我说:"今天天气不错"
console.log("我说:\"今天天气不错\"");
/*
* \" 表示 "
* \' 表示 '
* \n 表示 换行
* \t 表示 制表符
* \\ 表示 \
* */
  • Number类型
    在JS中所有的数值都是Number类型(整数和小数)。
var num1= 123;
var num2= 3.14;
console.log(typeof num1); // number
console.log(typeof num2); // number

// 浮点数计算可能得到不精确结果
console.log("0.1 + 0.2 = " + a); // 0.30000000000000004

最大值:Number.MAX_VALUE

console.log(Number.MAX_VALUE);  // 1.7976931348623157e+308

最小值(大于0的最小值):Number.MIN_VALUE

console.log(Number.MIN_VALUE);  // 5e-324

无穷大:Infinity, 如果超过了最大值就会返回该值

console.log(Number.MAX_VALUE + Number.MAX_VALUE); // Infinity
console.log(typeof Infinity); // number

无穷小:-Infinity, 如果超过了最小值就会返回该值

 console.log(typeof -Infinity); // number

NaN :非法数字(Not A Number),JS中当对数值进行计算时没有结果返回,则返回NaN

console.log("abc" * "abc"); // NaN
console.log(typeof NaN); // number
  • Boolean 布尔值
    布尔型只能够取真(true)和假(false)两种数值。
    注意:
    1)任何非零数值都是true, 包括正负无穷大, 只有0和NaN是false;
    2)任何非空字符串都是true, 只有空字符串""是false;
    3)任何对象都是true, 只有null 和 undefined 是 false;
console.log(Boolean(0));  // false
console.log(Boolean(1)); // true
console.log(Boolean(-1)); // true
console.log(Boolean(Infinity)); // true
console.log(Boolean(-Infinity)); // true
console.log(Boolean(NaN)); // false
console.log(Boolean("abc")); // true
console.log(Boolean("")); // false
console.log(Boolean(undefined)); // false
console.log(Boolean(null)); // false
  • Null
    Null 类型表示的是一个空的对象,只有一种值是 null。
    typeof null 会返回一个Object。
var test1= null;
console.log(typeof test1); // Object
  • Undefined
    Undefined 类型,表示变量未赋值,这种类型只有一种值就是undefined。
    typeof 对没有初始化和没有声明的变量都会返回undefined。
var value1 = undefined;
console.log(typeof value); //结果是undefined

var value2;
console.log(typeof  value2); //结果是undefined

undefined值实际上是由null值衍生出来的,所以如果比较undefined和null是否相等,会返回true。

var test1 = null;
var test2 = undefined;
console.log(test1 == test2); // true
console.log(test1 === test2); // false
数据类型转换
  • 将其它类型转换为字符串
  1. 调用被转换数据类型的toString()方法。
var num = 100;
var num1 = num.toString();
console.log(typeof num); // number
console.log(typeof num1); // string

var b = true;
var b1 = b.toString();
console.log(typeof b); // boolean
console.log(typeof b1); // string

var n = NaN;
var n1 = n.toString();
console.log(typeof n); // number
console.log(typeof n); // string

注:
1)null 和 undefined 这两个值没有toString()方法。
2)toString() 方法不会影响到原变量,它会将转换的结果返回。

数值类型的toString(),可以携带一个参数,输出对应进制的值。

var num = 20;
var res1 = num.toString(2);
var res2 = num.toString(8);
var res3 = num.toString(10);
var res4 = num.toString(16);
console.log(res1); // 10100
console.log(res2); // 24
console.log(res3); // 20
console.log(res4); // 14
  1. 调用String()函数
    有些值没有toString(),这个时候可以使用String()。比如:undefined和null。
    对于Number和Boolean实际上就是调用的toString()方法
var res1 = String(10); 
console.log(typeof res1); // string

var res2 = String(true); 
console.log(typeof res2); // string

对于null 和 undefined,就不会调用toString()方法(因为没有这个方法),而是在内部生成一个新的字符串。

var res3 = String(undefined);
console.log(typeof res3); // string

var res4 = String(null);
console.log(typeof res4); // string
  1. 将被转换的数据和 + "" 连接到一起
    任何数据和 +"" 连接到一起都会转换为字符串,内部实现原理和String()函数一样。
var res1 = 10 + "";
console.log(typeof res1); // string

var res2 = true + "";
console.log(typeof res2); // string

var res3 = undefined + "";
console.log(typeof res3); // string

var res4 = null + "";
console.log(typeof res4); // string
  • 将其它类型转换为Number类型
  1. 调用Number()函数
  • String --> Number

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

var res1 = Number("123");
console.log(typeof  res1); // number

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

var res2 = Number("123ab");
console.log(res2); // NaN    

3)如果是空字符串或全是空格的字符串,则转换为0。

var res3 = Number("");
console.log(res3); // 0

var res4 = Number( "    ");
console.log(res4); // 0
  • Boolean --> Number
    true 转成 1
    false 转成 0
var res5 = Number(true);
console.log(res5); // 1

var res6 = Number(false);
console.log(res6); // 0
  • Null --> Number
    null 转成0
console.log(Number(null)); // 0
  • Undefined --> Number
console.log(Number(undefined)); // NaN
  1. parseInt() 方法和 parseFloat() 方法
    Number()函数中无论混合字符串是否存在有效整数都会返回NaN,利用 parseInt() / parseFloat() 可以提取字符串中的有效整数。
    parseInt() / parseFloat(),两者之前的区别是前者只能提取整数,后者可以提取小数。
  • parseInt()提取字符串中的整数
    1)从第一位有效数字开始, 直到遇到无效数字;
    2)如果第一位不是有效数字, 什么都提取不到, 会返回NaN;
    3)第一个参数是要转换的字符串,第二个参数是要转换的进制;
var res7 = parseInt("300px");
console.log(res7); // 300

var res8 = parseInt("300px250");
console.log(res8); // 300

var res9 = parseInt("300.2px");
console.log(res9); // 300

var res10 = parseInt("abc123");
console.log(res10);  //NaN

var res11 = parseInt("");
console.log(res11);        // NaN,Number("")返回0
  • parseFloat提取字符串中的小数
    1)会解析第一个. 遇到第二个.或者非数字结束;
    2)如果第一位不是有效数字, 什么都提取不到;
    3)不支持第二个参数,只能解析10进制数;
    4)如果解析的内容里只有整数,解析成整数;
var res12 = parseFloat("20.5px");
console.log(res11); // 20.5

var res13 = parseFloat("20.5.5.5px");
console.log(res12); // 20.5

var res14 = parseFloat("abc20.5");
console.log(res13); // NaN

var res15 = parseFloat("20abc");
console.log(res14); // 20

对非String使用parseInt()或parseFloat(), 会先将其转换为String然后在操作。

var res16 = parseInt(true); // 这里相当于parseInt("true");
console.log(res16); // NaN
  1. 利用算数运算
    任何类型与Number 进行 减、乘、除、取模运算,都会先转为Number。
var a = "10";
var res17 = a - 0;
console.log(typeof res17); // number
var res18 = a * 1;
console.log(typeof res18); // number
var res19 = a / 1;
console.log(typeof res19); // number
  1. 利用 + 正号
    正号运算时,对于非Number类型的值,会将先转换为Number,然后再运算
var res = +true;
console.log(res);   // 1
console.log(typeof res); // number
  • 将其它类型转换为Boolean
  1. 使用Boolean()函数
  • Number --> Boolean
    0 和 NaN 为false,其他数字为true
console.log(Boolean(123));  // true
console.log(Boolean(0));    // false
console.log(Boolean(NaN));  // false
  • String --> Boolean
    "" 为 false,其他字符串为true
console.log(Boolean("abc")); // true
console.log(Boolean(" "));   // true
console.log(Boolean(""));    // false
  • Null --> Boolean
    null 转布尔类型为 false
console.log(Boolean(null));  // false
  • Undefined --> Boolean
    undefined 转布尔类型为 false
console.log(Boolean(undefined)); // false
  1. 利用逻辑非表达式
var num = 10;
num = !!num;
console.log(num);  // true
  • 进制转换
  1. 二进制转换八进制
           00 001 001
 结果:    0    1    1 = 011
 console.log(parseInt("011", 8)); // 十进制 9
  1. 二进制转换十六进制
         0001 1011
  结果:    1      b = 0x1b
  console.log(parseInt("0x1b", 16));// 十进制 27

参考极客江南简书:https://www.jianshu.com/p/f953f5ba1d84

相关文章

  • 02-JS基础-数据类型

    数据的计量单位 数据类型 JS中的六种数据类型 String    字符串 (基本数据类型)Number   数...

  • 02-js基础语法

    //1. js中的注释//这是单行注释/*这个是多行注释*/ //2.语句//一条语句结束需要加分号(现在的js版...

  • 02-JS基础(内置对象)

    javascript基础二 内置预设对象: Date() 返回当前时间和日期 getDate() 返回一个月中的某...

  • JAVA 之路第一讲

    数据类型: 基础数据类型 包装器数据类型 引用数据类型 null 数据类型 基础数据类型: 整型 byte(字节型...

  • OC基础数据类型

    一、基础数据类型 数据类型基础数据类型:int / float / double / char / bool / ...

  • 初级_OC第一讲基础数据类型和循环语句

    一、 基础数据类型 数据类型 基础数据类型:int / float / double / char / b...

  • android面试准备

    Android知识体系 语言 java基础 数据类型基础数据类型基础数据类型相关运算byte/8,char/16,...

  • Java知识之数据类型

    Java数据类型图表## Java数据类型分为:### 基础数据类型 引用数据类型 null类型 基础数据类型分別...

  • JS基础知识总结

    JS基础知识总结() 一、数据类型 五种基础数据类型,一种复杂数据类型 1、基础数据类型 又叫原始数据类型或者不可...

  • R语言基础--数据类型-总结

    R语言基础--数据类型-总结 1、R语言基础--数据类型之向量 2、R语言基础--数据类型之因子 3、R语言基础-...

网友评论

      本文标题:02-JS基础-数据类型

      本文链接:https://www.haomeiwen.com/subject/chmirftx.html