JS学习第一天
一只青鸟。 2019-10-15 11:44:04 ##JS第一天
####JaveScrip历史
作者:Brendan Eich
版权归:Oracle所有 最早诞生于1996年
#####浏览器组成
主要由两部分组成
1,shell
2,内核(渲染引擎,(语法规则和渲染))
#####chrome浏览器
2008年Google发布最新浏览器,采用javeScript引擎,引擎代号V8,因能把js代码直接转化为机械码来执行,以速度快而闻名。
#####主流浏览器(有独立的内核,占有一定的市场份额)
浏览器 内核
IE trident
Chrom webkit/blink
firefox Gecko
Opera presto
Safari webkit
#####JS的特点(动态语言)
<1>属于解释性语言
{
语言分为:
1,编译性语言(c c++)
它是通篇性翻译
优点:速度快
缺点:移植性不好(不垮平台)
2,解释性语言(javaScript php)
逐行翻译
优点:跨平台
缺点:速度稍微慢
}
<2>,单线程
<3>JS分为三大部分
EXMAScript,DOM,BOM
#####JS引入
1,页面内嵌 `<script></script>`标签
2,外部引入`<script src="location"></script>`
3,为符合Web标准,(w3c标准中的一项)结构(html),样式(js),行为(css)相分离,通常采用外部引入。
#####JS基本语法
1,变量(variable)
1〉变量声明:`var a;`
2〉变量赋值:`a=100;`
简化的写法:`var a =100;`
`document.write(a)`:指将变量的值打印到页面里面
3〉单一var
(1)`var a, b, c, d, e;`
a=20; b=40;
(2)
```
var a=10,
b=20,
c=30,
d=40,
e=60;
```
2,命名规则
1>必须以英文字母,下划线,¥开头
2>变量名可以包含英文字母,下划线,¥符号
3>不可以用系统的关键字,保留字作为变量名
#####基本语法
1,值类型(数据类型)
(1)原始值:放在stack(栈)里面
Number(数值型), String(字符串类型), Boolean(布尔值), underfined, null五大类
`var a=23`: 数值型(浮点型)
`var b="1223"`:双引号里面的类型都为字符串类型
`var a=true/false`:布尔值,只有两种
`var b=undefined`:程序自己的值,指还没有赋值
`var a=null`:空值,相当于占座
(2)引用值:放在heap(堆)里面
array,Object,function,......date,RegExp
例:
```
var arr = [1,2];
var arr1 = arr;
arr = [1,3];存储到一个新的存储块中
document .write(arr);
结果为1,3
```
*原始值与引用值的区别是赋值形式不同*
#####JS的基本规则
1,语句后面要用分号结束”;“
2,js语法错误会引发后继代码终止,但不会影响其他js代码块
低级错误:
```
var a = 10;
b = a ;
document.write(b);此处分号为中文格式,所以程序不执行
```
3,书写要规范,”=+/-“后面都要有空格
####js运算符
1,”+“
(1)数学运算,字符串连接。
(2)任何数据类型加字符串都等于字符串。
```
var a = 1 + 1 + "a" + (1+2)
document.write(a);
结果为2a3
```
2,”-“,”*“,”/“,”%“,”=“,”()“
运算优先级”=“最弱,”( )“最高
3,”++“,”--“,”+=“,”-=“。”/=“,”*=“,”%=“”++“,”- -“
例:
```
var a = 10 ;
a = a + 1 ;
a ++;(自身加1再赋值给自身,是上条语句的简写)
++ a;
```
```
var a = 20;
document.write(a++);
结果为20,先执行,再加1
var a = 20;
document.write(++a);
结果为21,先加1,再执行
```
```
var a = 10 ;
var b = ++a -1 + a++;
// 赋值自右向左,运算自左向右
document.write(b+"" +a);
结果为:21 12
```
```
var a = 10;
a --;
document.write(a);
结果为9
var a = 10;
--a;
document.write(a);
结果也为9
```
```
var a = 10;
a += 10 + 1;
document.write(a);
结果为21,相当于a=a+10+1;
```
```
var a = 10;
a *= 20;
document.write(a);
结果为200,表示a=a*20
```
```
var a = 3;
a %=4;
document.write(a);
结果为3,相当于a=a%4;
```
调换位置的方法
1〉
```
var a = 123;
var b = 234;
var c = a;
a = b;
b = c;
利用中间变量将a跟b的值交换,结果为a=234,b=123
```
2〉
```
var a = 123;
var b = 234;
a=a+b;
b=a-b;
a=a-b;
```
练习
```
var a = (10 * 3 - 4 / 2 + 1) % 2, (a=1)
b = 3;
b %= a + 3; (b=3)
document.write(a++);
document.write(--b);
结果为:1 ,2
```