主流浏览器和内核:
IE :trident
Chrome : webkit/blink
firefox : Gecko
Opera : presto
Safari : webkit
如何引入js?
(1) 嵌入式
(2) 外部引入
(3)为符合web标准(w3c标准中的一项)结构、样式、行为相分离,通常会采用外部引入
变量(variable)
变量声明
声明、赋值分解
单一var
命名规则
1.变量名必须以英文字母、——、
开
头
2.
变
量
名
可
以
包
括
英
文
、
—
—
、
开头 2.变量名可以包括英文、——、
开头2.变量名可以包括英文、——、、数字
3.不可以用系统的关键字、保留字作为变量名
值类型-数据类型
不可改变的原始值(栈数据)
Number,String,Boolean,undefined,null
引用值(堆数据)
array,object,function
var arr = [1,2];
var arr1 = arr;
arr = [1,3];
document.write(arr);//1,2
js语句基本规则
1.语句后面要用分号结束‘;’
2.js语法错误会引发后续代码终止,但不会影响其他js代码块
3.书写格式要规范,’= + / -‘两边都应该有空格
错误分两种:
1.低级错误(语法解析错误)
var a = 10;
document.write(a);
var b = 20;
document.write(b);
2.逻辑错误(标准错误,情有可原)
var a = 10;
document.write(a);
document.write(b);
js运算符
运算操作符
“+”
1.数学运算、字符串链接
2.任何数据类型加字符串都等于字符串
var o = 'q' + 1 + 1;//q11
var s = 1 + 1 + 'a' + (1 + 1);//2a2
"-","*","/","%","=","()"
var a = 0/0;//NaN
var b = 1/0;//infinity
var c = -1/0;//-infinity
var d = 5%2;//商2余1
var f = 4%6;//商0余4
优先级 “=” 最弱,()优先级较高
“++”,"–","+=","-=","/=","*=","%="
赋值的顺序 自右向左,计算的顺序 自左向右
var g = 10;
var h = 20;
h = g++;//11
h++;//12
var a = 10;
var b = ++a - 1 + a++; //11-1+11
document.write(b + '' + a); //21 12
var x = 10;
x += 10;
var j = 10;
j %= 2;
练习
1.写出打印结果
var a = (10 * 3 - 4 / 2 + 1) % 2;
b = 3;
b %= a + 3;
document.write(a++);
document.write("
");
document.write(–b);
2.var a = 123;var b = 234;请交换a,b的值。
第一种:
var a = 123;
var b = 234;
var temp;
temp = a;
a = b;
b = temp;
document.write(a + '' + b);
第二种:
var a = 123;
var b = 234;
a = a + b;
b = a - b;
a = a - b;
document.write(a + '' + b);
比较运算符
‘>’,’<’,’==’,’<=’,’>=’,’!=’
比较结果为boolean
字符串比较的是ASCII的顺序
var a = 1 > 2;
document.write(a);//false
var b = '邓哥不帅' > '成哥不帅';
document.write(b);//true
var c = 1 == 2;
console.log(c);//false
var d = NaN == NaN;
console.log(d);
逻辑运算符
‘&&’,’||’,’!’
运算结果为真实的值
先看第一表达式转换成布尔值得结果,如果 结果为真,
那么它会看第二个表达式转换为布尔值得结果,然后如果只有
两个表达式的话,只看到第二个表达式,就可以返回表达式的值了。
'&&'全真为真,一个为假就为假
'||'有一个真就为真
var a = 1 && 2;
console.log(a);//2
有卵用 和 没卵用有啥区别?
var b = 1 || 3;
console.log(b); //1
var num = 0 || false || 1;
console.log(num); //1
var c = 0 || false;
console.log(c); //false
div.onclick = function(e) {
//非IE浏览器
var event = e;
//IE浏览器
//window.event;
var event = e || event;
}
var a = !123;
console.log(a); //false
var b = !!"";
console.log(b); //false
var c = true;
c = !c;
console.log(c); //false
被认定为false的值
undefined,null,NaN,"",0,false