JS基础知识--变量类型与变量计算(强制类型转换)

题目:

  • JS 中使用 typeof 能得到哪些类型
  • 何时使用 === ,何时使用 ==
  • JS 中有哪些内置函数
  • JS 变量按照存储方式区分为哪些类型,并描述其特点
  • 如何理解 JSON

知识点:

  • 变量类型
  • 变量计算

1 变量类型

  • 值类型 vs 引用内省
  • typeof 运算符详解

1.1 值类型

var a = 100
var b = a
a = 200
console.log(b)	// 100

1.2 引用类型

var a = {age:22}
var b = a
b.age = 20
console.log(a.age)	// 20

引用类型: 对象,数组,函数

1.3 typeof 运算符

typeof undefined	// undefined
typeof 'abc'	// strring
typeof 123	// number
typeof true	// boolean
typeof {}	// object
typeof []	//object
typeof null	// object
typeof console.log	// function

// typeof 只能区分值类型的具体数据类型,不能区分引用类型( function暂时忽略 )

2 变量计算-强制类型转换

  • 字符串拼接
  • == 运算符
  • if 语句
  • 逻辑运算

2.1 字符串拼接

var a = 100 + 10	// 110
var b = 100 + '10'	// '10010'

2.2 == 运算符

100 == '100'	//true
0 == ''	//true
null == undefined	//true

// 0, '', null, undefined 都会转换为 false

2.3 if 语句

var a = true
if (a) {
	console.log('我被执行了!')	//	我被执行了!
}
var b = 100
if (b) {
	console.log('我被执行了!')	//	我被执行了!
}
var c = ''
if (c) {
	console.log('我没有被执行了!')	//	我没有被执行了!
}

// 几种 if 语句里面是 false 的情况: 0, NaN, null, '', undefined, false

2.4 逻辑运算符

console.log(10 && 0)	// 0, 这里的 10 被强制类型转换为 ture
console.log(0 && 10)	// 0
console.log('' || 'abc')	// 'abc', ''被强制类型转换为 false
console.log('abc' || '')	// 'abc'
console.log(!windonw.abc)

// 判断一个变量会被当做 ture 还是 false
var a =100
console.log(!!a)

解答:

// 问题: JS 中使用 typeof 能得到哪些类型
typeof undefined	// undefined
typeof 'abc'	// strring
typeof 123	// number
typeof true	// boolean
typeof {}	// object
typeof []	//object
typeof null	// object
typeof console.log	// function
// 问题:何时使用 === ,何时使用  ==
if (obj.a == null) {
	// 这里相当于 obj.a === null || obj.a === undefined 的简写形式
	// 这是 jQuery 源码中的推荐写法
}
// 问题:JS 中有哪些内置函数
Object
Array
Boolean
Number
String
Function
Data
RegExp
Error
// 问题:JS 变量按照存储方式区分为哪些类型,并描述其特点

// 值类型
var a = 10
var b = a
a = 11
console.log(b)	// 10

// 引用类型
var obj1 = {x:100}
var obj2 = obj1
obj1.x = 200
console.log(obj2.x)	// 200

值类型:传递数据时会申请一个新的空间存放变量的值
引用类型:会申请一个空间存放指向该引用类型的地址。
引用类型都可以有属性,不光是对象,函数、数组都可以

// 问题:如何理解 JSON
// JSON 不仅仅是一种数据格式,同时也是一个 JS 对象

JSON.stringify({a:10, b:20})	// 将 JSON 对象转换为字符串数据
JSON.parse('{a:10, b:20}')	// 将字符串数据转换为 JSON 对象
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值