typeof关键字
判断基本数据类型
typeof null //object 表示一个空对象的引用
常用运算符
算数运算符
+ | |
---|---|
- | |
* | |
/ | |
% | |
++ | i++ (先赋值再+1) ++i (先+1,后赋值i) |
-- | i-- --i |
i++ 与 ++i 区别
++i 前自加
i++ 后自加
var a,i=10;
a = i++;
console.log('a'+a,'i'+i) //a10 i11
var a,i=10;
a = ++i;
console.log('a'+a,'i'+i) //a11 i11
for(var i=0;i<5;i++){
setTimeout(function(){
console.log(i)
})
}
console.log(i++) //566666
赋值运算符
+= | x+=y | x=x+y |
---|---|---|
-= | x-=y | x=x-y |
*= | x*=y | x=x*y |
/= | x/=y | x=x/y |
%= | x %= y | x=x%y |
= | x = y | x = y |
let a = 10;
a+=20;
alert(a)
字符串运算符 +
字符串和字符串相加
number和string相加 (number进行隐式转换成字符串)
let str = 'we'
let n = 5;
alert(str+n)
比较运算符
== | 等值 |
---|---|
=== | 等值等型 |
!= | |
!== | |
> | |
< | |
>= | |
<= | |
? | 三元 var b = 2<3?true:false |
逻辑运算符
&& | |
---|---|
|| | |
! |
类型运算符
typeof | 判断类型(基本数据类型 Undefined String Number Boolean) |
---|---|
instanceof | 所有引用类型都是Object的实例 |
instanceof能判断一个值具体是由什么构造函数构造出来的。
a instanceof Array a是Array的实例 返回true
a instanceof Function
a instanceof Object
a instanceof RegExp
a instanceof Date
// var oSpan = document.getElementById('span');
oSpan instanceof Element
instanceof运算符用来检测constructor.prototype是否存在于参数a的原型链上。
f1 instanceof Foo //true
// 定义构造函数
function C(){}
function D(){}
var o = new C();
o instanceof C; // true,因为 Object.getPrototypeOf(o) === C.prototype
o instanceof D; // false,因为 D.prototype不在o的原型链上
o instanceof Object; // true,因为Object.prototype.isPrototypeOf(o)返回true
C.prototype instanceof Object // true,同上
C.prototype = {};var o2 = new C();
o2 instanceof C; // true
o instanceof C; // false,C.prototype指向了一个空对象,这个空对象不在o的原型链上.
D.prototype = new C(); // 原型继承
var o3 = new D();
o3 instanceof D; // true
o3 instanceof C; // true 因为C.prototype现在在o3的原型链上
function Foo(){}
var f1=new Foo();
console.log(f1 instanceof Foo);//true
console.log(f1 instanceof Object);//true
原型链示意图
控制语句
if条件判断
if(){
}else if(){
} else{
}
switch 匹配语句
var x = '';
var d=new Date().getDay();
switch (d)
{
case 1:x="今天是星期一";
break;
case 2:x="今天是星期二";
break;
case 3:x="今天是星期三";
break;
case 4:x="今天是星期四";
break;
case 5:x="今天是星期五";
break;
case 6:x="今天是星期六";
break;
default:
x="今天是星期日";
}
alert(x)
for 循环
例子
var i = 0;
for(;i<5;i++){
setTimeout(()=>{
console.log('定时器 '+i)
},1000)
}
console.log('执行 '+ i)
console.log(i++)
//执行 5 5 5次定时器6
死循环例子
for(;;){
alert(1)
}
for in 循环 (遍历对象属性)for in的正确用法其实是用于迭代对象的可枚举键,而不是用于迭代数组。
let json = {fname:"Bill", lname:"Gates", age:62}
for(var item in json){
console.log(item + ': '+json[item])
}
while循环
var m = 8
while(m>2){
alert(m) //8 7 6 5 4 3
m--;
}
do/while 循环
var i = 0;
do{
alert(i)//0 1 2 3
i++
}
while(i<4)