浏览器
- 主流浏览器
IE:Trident
Firefox:Gecko
Chrome:Webkit/Blink
Safari:Webkit
Opera:Presto/Blink - 浏览器组成
1.shell外壳
2.core:内核(JS执行引擎、渲染引擎)
js介绍
Javasript特点:
- 解释性
- 编译:全文翻译,在执行翻译文件。C、C++
C->.obj
优点:快
不足:一移植性好(不跨平台) - 解释:一句一句翻译。Javascript、php
优点:跨平台
不足:稍微慢
- 单线程
计算机中,同时做叫做异步,一个一个做叫同步。
轮转时间片:时间片排序不一定。
js引入
方式一:页面内嵌
html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script type="text/javascript">
document.write('hello!!!')
</script>
</body>
</html>
方式二:引入外部文件
html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script type="text/javascript" src="class1.js"></script>
</body>
</html>
class1.js文件
document.write('hello aaabbb')
为符合web标准(w3c标准中的一项) 结构、样式、行为相分离,通常会采用外部引入
结构->html
样式->css
行为->js
js基础语法
变量
定义一个变量分两步:
1.声明变量: var a; 申请名为a的空间。
2.变量赋值:a = 10; 将数值10放进名为a的空间中。
等价于:var a = 10;
var a = XX;
XX可以是数值,1、-123.234
XX可以是字符串,b=”sdfv”;c=’sfs’; 单双引号都行
XX可以是布尔类型,a = true/false;
- 定义多个变量
var a = 10,
b = 20,
c = 30,
d;
值类型
-
原始值->栈数据(不可改变)存在stack中 first in last out
- 有5大类:Number、String、Boolean、undefined(未赋值)、null(占位,空值覆盖)
- 数据是拷贝的,互相不影响。
-
引用值->堆数据 存在heap 拷贝的是地址,push数据会互相影响。
array(数组)、var arr = [1,2,3,4,5,true,"aaa"] arr.push(3);
js运算符
运算操作符
- “+”
数学运算、字符串链接。
任何数据类型加上字符串都等于字符串。
var a = "a" + "b";
var a = "a" + 1;
- “-”,“/”,“*”,“%”,“=”,“()”
优先级"=“最弱,”()"较高。
infinity number
NaN not a number
"++“自加、”–"自减
a = a + 1;
等价于a ++;
document.write(++a);先++后打印。
document.write(a++);先打印a,再加一。
"+="先加数,再赋值给自身。
"-="先减数,再赋值给自身。
"*="先乘数,再赋值给自身。
"/="先除数,再赋值给自身。
"%="先求余数,再赋值给自身。
var 10;
a = a + 10;
等价于a += 10;
比较运算符
“>”,“<”,“==”,“>=”,“<=”,“!=”
">","<",返回布尔值
var a = 1 < 3;
false
var a = 1 == 2;将1是否等于2的值赋给a。
false
逻辑运算符
“&&”,“||”,“!”
undefined,null,NaN,“”(空串),0,false---->false
- &&与
先看第一个表达式转换成布尔值的结果,如果结果为真,那么看第二个表达式转换为布尔值的结果。之后再返回该表达式的值。
- 真的继续,假时停。
var a = 1 && 2+2;
第一个表达式为真,返回第二个表达式的值。4
var a = 0 && 2+2;
第一个表达式为假,返回第一个表达式的值。0
- ||或
先看第一个表达式转换成布尔值的结果,如果结果为假,那么看第二个表达式转换为布尔值的结果。之后再返回该表达式的值。
- 假的继续,真时停。
var a = 1 || 2+2;
第一个表达式为真,返回第一个表达式的值。1
var a = 0 || 2+2;
第一个表达式为假,返回第二个表达式的值。4
- !非
先变为布尔值,再取反。
if
var score = parseInt(window.prompt('input'));
document.write(score);
- if - else if
- if - else
for
for(var i = 0; i < 10; i++){
document.write(a);
}
第一步:先执行 var i = 0;
第二步:判断 i<10,执行语句
for(i < 10){
document.write(a);
}
第三步:执行i++;
第四步:判断 i<10,执行语句
for(i < 10){
document.write(i);
}
第五步:执行i++;
······
第n步:判断判断 i<10,错误,跳出循环
while
while(i<10){
document.write(i);
i++;
}
do while
先执行一次在进行判断
do{
}while(i < 10)
switch case
switch(){
case 1:
console.log("a");
break;
case 2:
}
continue
中止本次循环,进行下一次循环。