JavaScript学习笔记(一)数据类型

数据类型

JavaScript的数据类型包括:

  • Number
  • String
  • Boolean
  • Symbol (ES6新增)
  • Object
    • Function
    • Array
    • Date
    • RegExp (正则表达式)
  • Null
  • Undefined

1、Number

JavaScript并不区分浮点数和整数
内置对象Math用于处理更多的高级数学函数和常数

parseInt() 将字符串转为整型,该函数的第二个参数表示转化的数字的进制

parseInt("") // NaN

parseFloat() 将字符串转为浮点数,只用于解析十进制数字

Number() 可以将较多类型的输入转化为数字,具体规则参考《JavaScript高级程序设计》

Number(null) //0
Number(undefined) //NaN

单元运算符+也可以将字符串转化为数值 (注意与parseInt的区别)

+ "42" //42
+ "1.1" // 1.1
+  "1a" // NaN
parseInt("1a") // 1

NaN: 非数
NaN参与数学运算结果也是非数
NaN与任何值都不等

console.log(NaN === NaN) // false

内置函数 isNaN() 来判断一个变量是否是NaN

isNaN(NaN) // true
isNaN("time") // true
isNaN("10") // false, 可以转化为数字10
isNaN(true) // false, 可以转化为数字1

Infinity 和 -Infinity (正无穷和负无穷)
可以用内置函数 isFinite()来判断是否是有穷数
如果类型是 Infinity ,-Infinity, NaN 则为false。

2、String

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

var lang = "Java";
lang = lang + "Script";
转化为字符串

Number、Boolean、Object和String都有一个toString()的方法
Null和Undefined没有这个方法

一般情况下toString()方法没有参数,有参数的时候表示数字的进制

var num = 10;
console.log(num.toString()); // 10
console.log(num.toString(2)); // 1010

转型函数String()可以将任意类型的值转化为String

  • 如果有toString()方法调用toString()方法
  • 如果是null返回"null"
  • 如果是undefined返回"undefined"

3、Boolean

布尔值的字面量只有true和false,并不是数字值

转化为Boolean

使用转型函数Boolean()

数据类型转换为true的值转换为false的值
Booleantruefasle
String任何非空字符串“”(空字符串)
Number任何非零数字值(包括无穷大)0和NaN
Object任何对象null
Undefinedundefined

4、Symbol

symbol是一种基本数据类型

每一个Symbol()返回的symbol值都是 唯一 的。一个symbol值能作为对象属性的标识符,这是该数据类型仅有的目的。

const symbol1 = Symbol();
const symbol2 = Symbol(42);
const symbol3 = Symbol('foo');

console.log(typeof symbol1); // "symbol"
console.log(symbol3.toString()); // "Symbol(foo)"
console.log(Symbol('foo') === Symbol('foo')); // false

Symbol("foo)不会强制字符串"foo"成为一个symbol类型,它每次都会创建一个新的symbol类型

Symbol()函数返回symbol类型的值,该类型具有静态属性和静态方法。它的静态属性会暴露几个内建的成员对象;它的静态方法会暴露全局的symbol注册,且类似于内建对象类,但作为构造函数来说它并不完整,因为它不支持语法 “new Symbol()”

5、Object

JavaScript中的对象实际上是一组数据和功能的集合。

var o = new Object(); //如果构造函数没有参数,()可以省略
方法
  • constructor:
  • hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中(而不是在实例的原型中)是否存在,propertyName必须以字符串形式指定
  • isPropotypeOf(Object):用于检查传入的对象是否是传入对象的原型
  • propertyIsEnmuerable(propertyName):用于检查给定的属性能否使用 for-in 语句来进行枚举
  • toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区相对应
  • toString():返回对象的字符串表示
  • valueOf():返回对象的字符串、数值或布尔值表示。通常与toString()方法返回值相同
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值