03-JavaScript理论篇 - 数据类型

在讲数据类型前,先屡屡命名规则和规范

  • 规则(必须遵守)

    • 由字母、数字、下划线、$组成
    • 不能是关键字和保留字
      -区别大小写
  • 规范 (建议遵守)

  • 变量的名称要有意义

  • 变量的命名遵守驼峰命名法,首字母小写,第2个单词的首字母大写 例如:getArea

一.数据类型

  • Number
  • String
  • Boolean
  • Undefined //变量声明,但未赋值
1.1 Number类型
  • 浮点数
  • var n = 5e-324
    //浮点数值的最高精度是17位小数,但在进行算术计算时其精度远不如整数
  • var result = 0.1 +0.2;//结果不是0.3,而是0.30000000000000004

  • console.log(0.07 *100);

  • 永远不要测试某个特点的浮点数值(不要判断两个浮点数是否相等)

  • 数值范围

  • 由于内存的限制,ECMAScript幷不能保存世界上所有的数值
  • 最小值:Number.MIN_VALUE,这个值为:5e-324

  • 最大值:Number.MAX_VALUE,这个值为:1.797691348623157e+308

  • 无穷大:Infinity

  • 无穷小:-Infinity

  • 数值jiance

  • NaN 非数值(Not a Number)
  • console.log("abc"/18);//结果是NaN
  • NaN与任何值都不相等,包括NaN本身
  • isNaN():任何不能被转换为数值的值都会导致这个函数返回true
    • isNaN(NaN);//true
    • isNaN("blue");//true
    • isNaN(123);//false
1.2 String类型
  • 字符串字面量 (例如:var name = "ls";//"ls"字面量)
  • 字符串要用引号引起,单引号和双引号的作用是等效的

  • 字符串是由一个一个字符组成的,获取一个字符串中字符的个数可以使用length,OC中使用const.

  • 字符串的不可变

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

demo: var str = "1234"; str = str +"abc";

1.3 Boolean类型

Boolean类型有两个字面量:true和false,并且区分大小写
虽然Boolean类型的字面值只有两个,但ECMAScript中所有类型的值都有与这两个Boolean值等价的值
例如:
var result = Boolean("a");
console.log(result); //true
var result = Boolean(100);
console.log(result); //true

1.4 Undefined类型

Undefined是一种比较特殊的类型,表示变量未赋值,这种类型只有一种值就是undefinef
例如:var message;
console.log(message);//结果是undefined)
undefined是Undefined类型的字面量
例如:var message = undefined;
console.log(message);
typeof message;获取到的是"undefined"

二.类型转换

2.1转换成字符串(3种方式)
  • 1.几乎每一个值都有toString()方法
 var age = 10;
 var ageString = age.toString;
console.log(ageString);// 18

var result = true;
var resultString = result.toString;
console.log(resultString);// true
//数值类型的toString(),可以携带一个参数,输出对应进制的值
var num =10;
console.log(num.toString());// 默认是10进制
console.log(num.toString(8));// 12
console.log(num.toString(16));//a
console.log(num.toString(2));//1010
  • 2.String()函数
var age =11;
console.log(age.(String(age));//18
var result = true;
console.log(String(result));//true
console.log(String(undefined));//undefined

String()函数存在的意义:有些值没有toString(),这个时候可以使用String().比如:undefined和null

  • 3.使用拼接字符串
var age =11;
var str = age +"岁";
console.log(str);//11岁

var str = "" +11;//11
 
2.2转换成数值类型

三个把值转换成数值类型的函数:Number()、parseInt()、parseFlocat()

  • Number()可以把任何值转换成数值,如果要转换的字符串中有一个不是数值的字符,返回NaN
    • 例如:
      var num1 = Number(true);//true返回1 false返回0
      var num2 = Number(undefined);//返回NaN
      var num3 = Number("hello");//返回NaN
      var num4 = Number("");//空字符串返回0
      var num5 = Number(123);//返回123,如果是数字,简单返回
      var num6 = Number("123ab");//NaN
      var num7 = Number("as123");//NaN
  • parseInt()把字符串转换成整数
    var num1 = parseInt("12.2a");//返回12,如果第一个字符是数字会解析知道遇到非数字结束
    var num2 = parseInt("ab123");//返回NaN,如果第一个字符不是数字或者符号就会返回NaN
    var num3 = parseInt(""); //空字符串返回NaN, Number("")返回0
    var num4 = parseInt("10");//返回10
    var num5 = parseInt("0xA");//返回10
  • parseInt()可以传递两个参数(要转换的字符串,要转换的进制)
    var num1 = parseInt("A",16);//A按10进制解析是10
    var num2 = parseInt("10",16);//10按16进制解析是16
    var num3 = parseInt("10",2);//10按2进制解析是2
2.3转换成布尔类型(两种方式)
  • Boolean()函数
    例如: var b = Boolean("123"); //返回yes
  • 流程控制语句会把后面的值隐式转换成布尔类型,任何类型可以转换成Boolean类型,一般用在流程控制语句后面
    例如: var message = "hello";
    if(message){alert(message +"world")};
    空字符串,0,NaN,null,undefined --转换为false

你可能感兴趣的:(03-JavaScript理论篇 - 数据类型)