js中的数据类型检测
typeof [val] :用来检测数据类型的运算符
instanceof :用来检测当前实例是属于某个类
constructor: 基于构造函数检测数据类型(也是基于类的方式)
Object.prototype.toString.call() :检测数据类型最好的方法
用法如下:
typeof '12' ==> 'string'
typeof true ==> 'boolean'
typeof null ==> 'object'
typeof undefined ==> 'undefined'
typeof 1 ===> 'number'
typeof NaN ==> 'number'
typeof {} ==> 'object'
typeof [] ==> 'object'
typeof /^/ ==>'object'
typeof function(){} ==> 'function'
typeof 的特点:
基于typeofj检测出来的结果
1 首先是一个字符串
2 字符串中包含了对应的类型
typeof的局限性:
1 typeof null => 'object' 但是 null b并不是对象
2 基于typeof 无法细分出当前值是普通对象还是数组对象等。因为只要是对象数据类型返回的结果都是 ‘object’
typeof 的练习题?
console.log(typeof typeof typeof []) 输出的结果是什么?
因为:从右向左开看,typeof []的结果是。字符串 ‘object’所以在使用ttypeofq去检测 ‘object’时的
结果为 ‘string’,最后的结果就是 字符串 ‘string’
js中的操作语句:判断,循环
判断:条件成立做什么,不成立做什么?
-if /else if /else
-三元运算符
-switch case
1 if /else
条件的多样性:等于。大于。小于的比较 /y一个值或者取反等。==>z最后都是要计算出是true还是ffalse
2 三元运算符:简单的 if/else 的特殊处理方式。
// 条件?条件成立处理的事情:不成立处理的事情;
1 如果处理的事情比较多,我们用括号包起来。每一件事情用逗号分隔
2 如果不需要处理事情,可以使用 null / undefined 占位
3 switch case : 一个变量在不同值情况下的不同操作
1 每一种case情况结束后最后都加上break
2 default 等价于 else 以上都不成立干的事情
3 每一种caseq情况的比较用的都是。=== ‘绝对相等’
4。 不加bbreak 当前条件执行完成后,后面的条件不论是否成立,直到遇到 break 为止
(不加break 可以实现变量在 某些值的情况下做相同的事情,==> 编程开发人员要具备探索尝试执行)
“==" 与 “===”的比较
== : 相等 (如果左右两个数据值类型不同),是默认先转换为相同的类型,然后比较。
例如: '5' == 5 ===> true;
===: 绝对相等 (如果类型不一样,肯定不相登,不会默认转换数据类型)
'5' === 5 .====>false
循环
重复做些某些事情就是循环
循环的类型包括如下:
for 循环
for in 循环
for of 循环
while 循环
do while 循环
循环开始的条件
1 创建循环初始值
2设置 (验证)循环执行的条件
3 条件成立执行循环体中的内容
4 d当前循环结束执行步长累计操作
循环体中的两个关键词
continue:结束当前这轮循环 (continue后面的代码不再执行)j继续执行下一轮循环
break :强制结束整个循环 (break后面代码也不再执行),而且整个循环啥也不干直接结束