自学javascript
几大主流的浏览器及其内核
IE trident
chrome webkit/blink
firefox gecko
opera presto
safari webkit
js有两个特点:
1.解释性语言,动态语言
2.单线程(同一时间只能干一件事)
引入js的方式:
1.页面引入
<script type="text/javascript">
var a = 100
document.write(a);
</script>
2.引入外部文件
<script type="text/javascript" src="test1.js">
</script>
3.外部文件(单独的一个文件)
注意:当外部文件和页面级js同时存在时,只有外部文件会生效,页面级js不会生效
变量:存放数据以便于日后使用
var a; 向系统申明一个变量,申请一个地方,门牌号叫a 叫做变量声明
a = 100; 把100放到a的这个房间里面
正常情况,开发时会这么命名变量
var a = 10,
b = 20,
c = 30,
d;
document.write(a,b,c,d);
var a = 10;
a = 20;
20会覆盖前面的10,也就是说一个变量里面只能存储一个数据
变量的命名规则
1.变量名必须以英文字母,_,$开头
2.变量名必须以英文字母,_,$,数字
3.不可以用系统的关键字,保留字作为变量名
var a = 10;
var b = 20;
var c;
c = a + b;
注意:这里运算大于赋值的优先级,选运算,再赋值给c
数据类型:
原始值:number(数字类型) boolean(布尔类型) string(字符串类型) undefined(没有定义的) null(空值,占位的作用)
存储在 stack(栈内存),先进去的后出来,栈内存值与值之间的关系是拷贝
栈内存,存的数据是不可修改的
引用值:array(数组类型) object(对象类型) function(函数类型) ...date regexp(正则表达式)
存储在 heap(堆内存),也是先在栈内存申请房间,但是值放在堆内存中,栈内存只存放堆内存的地址
引用值互相之间拷贝的是地址
var arr = [1,2];
var arr1 = arr;
arr = [1,3]; 这里相当于重新开了一个房间
js语句的基本规则:
1.语句后面要用分号结束 “;”
2.js语法错误会引发后续代码终止,但不会影响其他的js代码块
错误分两种
1.低级错误(语法解析错误),出现这种错误一行都不会执行
2.逻辑错误(标准醋味,情有可原),出现这种错误,出错的代码以下不会执行
3.书写格式要规范,= + / - 两边都应该有空格
js的运算符:
+ 作用: 1.数学运算 2.字符串链接
- 作用:1.数学运算
* 作用:数学运算
/ 作用:数学运算
% (摩尔,取余)
= 作用:赋值
=优先级最低,()优先级最高
++ a = a + 1; 意思就是自身加1,再赋值给自身
a++ 先赋值,再加
++a 先加,再赋值
-- 减去值,再赋值给自身
赋值的顺序自右向左,计算的顺序自左向右
+= a += 10 + 1; 等于 a = a + 10 + 1