JS学习二:数据类型、类型转换

JS 的基本数据类型:

1.数字number:包括整数和浮点数

2.字符串string:

3.布尔值boolean:包括true和false

4.undefined:访问一个不存在的变量,会得到一个特殊值undefined;访问一个已定义但未赋值的变量,也会如此。

5.null:只包含一个值的特殊数据类型,通常表示”不代表任何东西“,没有值或空值。

null与undefined不同的地方:被赋值为null的变量,通常被认为是已经定义了的变量,只不过它不代表任何东西。

 

JS非基本数据类型:对象

 

标识符,是一个字符串。

字符串未必是标识符。

标识符的规则:

  • 只能由数字、字母、下划线、$符号组成
  • 开头不能是数字
  • 不能使用js的关键字和保留字
  • 区分大小写
  • 遵循驼峰原则
  • 见名知意

标识符的作用:给变量、函数等命名使用。

 

变量的定义(variable):var 变量名;

数据的存储:变量名 = 表达式;

常量:不能改变的数据

 

查看变量类型:typeof()

var x;
x = 10
console.log(typeof(x));

 结果:number

 

 

1.数值类型的数据:

JS不强制要求,在语句后面加分号。

字符串的拼接:

var x = 10;
var y = 15;
var sum = x + y;
console.log("sum = " + sum); // 数字和字符串拼接时,会自动转成字符串

JS能表示的最大数字是:1e308,10的308次方。

var num3 = 1e308;
console.log(num3);
var num4 = 1e309;
console.log(num4);
// 结果 1e+308 和 infinity

JS的数字类型中,有两个特殊值,注意区分大小写:Infinity、NaN

Infinity与任何数值运算的结果,仍然是Infinity

var num1 = Infinity;  // 表示超过了js能表示的数字范围
console.log(num1 + 1)
console.log(num1 - 10)
//结果:Infinity 和 Infinity

 判断某数值是不是Infinity,使用isFinite:

console.log(Infinity == Infinity)   // 不能这样判断,结果返回fasle
console.log(isFinite(Infinity)) //返回true

NaN与任何数值运算的结果,仍然是NAN

var num2 = NaN;  //NAN表示定义的不是一个数值的特殊数值
console.log(num2 + 1);
console.log(num2 - 10);
//结果:NaN 和 NaN

判断一个数值是不是NaN,不能使用 NaN == NaN,要使用isNaN():

console.log(NaN == NaN)
// 判断结果为 false
console.log(isNaN(NaN))
// 判断结果:true

 

 

2.字符串类型的数据

拼接使用 +

var str1 = "hello world!"
console.log(str1 + "haha")
// 结果:hello world!haha

不区分单,双引号。

 

3.布尔值类型的数据:true和false

var a = true;
var b = false;
console.log(a, b)
//结果:true 和false

 

假值,六种:

  • 0,0.0
  • "",''
  • NaN
  • undefined
  • null
  • false

 

4.其它类型转换数值:

1).字符串 转换 数值,有几个方法:parseInt,Number

字符串前面的空白会自动去除。

通常使用paserInt。

使用parseInt转换时,如果字符串以数字开头,将取值,直到不是数字为止;取不到数字时,返回NaN:

var num1 = parseInt("123");
console.log(num1)
var num2 = parseInt("12ab3")
console.log(num2)
var num3 = parseInt("ab12c3")
console.log(num3)//结果依次为:123,12,NaN

使用Number转换时,字符串须全部是数字,才可以转换,否则返回NaN:

var num1 = Number("123");
console.log(num1)
var num2 = Number("12ab3")
console.log(num2)
var num3 = Number("ab12c3")
console.log(num3)
//结果依次为:123,NaN,NaN

parseInt转换为整形,parseFloat转换为浮点数,转换原则基本一样。

var n1 = "  12.3"
console.log(parseInt(n1))
console.log(parseFloat(n1))
var n1 = "  12"
console.log(parseInt(n1))
console.log(parseFloat(n1))
//结果依次为:12, 12.3,12,12

2).undefined转换为数值,结果为NaN

var num5 = parseInt(undefined)
console.log(num5)
var num9 = Number(undefined)
console.log(num9)
//结果依次为:NaN,NaN

3).对于 特殊类型的null,undefined,true,flase,""转为数值时:

使用parseInt对特类型取值,得到的结果都是NaN:

var num5 = parseInt(null)
console.log(num5)
var num6 = parseInt(true)
console.log(num6)
var num7 = parseInt(false)
console.log(num7)
var num13 = parseInt("")
console.log(num13)
//结果依次为:NaN,NaN,NaN,NaN

使用Number对特殊类型取值,得到的结果是0或1:

var num8 = Number(null)
console.log(num8)
var num10 = Number(true)
console.log(num10)
var num11 = Number(false)
console.log(num11)
var num12 = Number("")
console.log(num12)
//结果依次为:0,1,0,0

 

 

5.其它类型转字符串:String()

数值转字符串:

console.log(String(123))
console.log(String(123.45))
console.log(String(0.25))
console.log(typeof(String(23)))
//结果依次为:"123","123.45","0.25",string 

undefined转字符串:

console.log(String(undefined))
console.log(typeof(String(undefined)))
//结果为:"undefined",string
console.log(String(undefined) + "abc")
console.log(typeof(String(undefined) + "abc"))
//结果为:"undefinedabc",undefined

null转字符串:

console.log(String(null))
console.log(typeof(String(null)))
//结果为:"null", string
console.log(String(null) + "abc")
console.log(typeof(String(null) + "abc"))
//结果为:"nullabc", string

boolean转字符串、拼接:

console.log(String(true))
console.log(typeof(String(true)))
console.log(String(false))
console.log(typeof(String(false)))
// 结果为:"true", string, "false", string
console.log(String(true) + "abc")
console.log(typeof(String(true) + "abc"))
console.log(String(false) + "abc")
console.log(typeof(String(false) + "abc"))
// 结果为:"trueabc", string, "falseabc", string

 

 

6.其它类型转布尔类型

结果为true的:

console.log(Boolean(123))
console.log(Boolean(12.23))
console.log(Boolean("abc"))
console.log(Boolean(Infinity))

 结果为false的:

console.log(Boolean(0))
console.log(Boolean(0.0))
console.log(Boolean(""))
console.log(Boolean(undefined))
console.log(Boolean(null))
console.log(Boolean(NaN))

 

posted on 2018-11-17 18:48  myworldworld  阅读(161)  评论(0)    收藏  举报

导航