js的由来:
1995网景 livescript
国际 JavaScript
全称:JavaScript
组成:
核心js:ECMAScript5
兼容性较佳
dom:document object model 文档对象模型
兼容性相对差
bom:bowser object model 浏览器对象模型
兼容性相对差
特点
js:典型的弱类型语言
var a=10;
a="hello"; 可以随意更改数据类型(弱)
脚本语言
本身具有逻辑能力和行为能力
解释型语言
需要被解析器解析执行
浏览器:内置js解析器
node:封装谷歌v8引擎,内涵js解析器
1》repl环境 node
r:读取 e:eval执行 p:print打印 l:loop 循环
2》node命令
解析顺序
从上到下按照解析顺序依次执行(代码书写顺序不一定是解析顺序)
大小写敏感
console.log();
语法:
1.声明变量
a.标识符声明
1.应由字母数字下划线及$组成;
var 柱子=""; //报错
2.标识符不能以数字开头;
3.建议使用驼峰式命名
从第二个单词开始首字母大写
4.不能使用关键字和保留字
关键字:在js中具有特殊意义的变量
保留字:未来有可能成为关键字的字符
b.变量声明
es5
1.var table; //声明table变量,不赋值
table="hello"; //获取table变量,赋值
2.var a="hello"; //声明变量并赋值
3.a='hello'; //声明变量并赋值,必须赋值 不能a
4.var a=1,b=2,c=3; //同时声明多个变量 console.log(a,b,c)
es6
let:使用let声明的变量不能重复声明
使用let声明的变量不能进行变量提升
const:使用const声明的不能重复声明
(一般使用声明常量,一旦声明不可修改)
如果常量值为引用数据类型,只要引用地址不变,可以修改内部属性
const person{
name:'one'
}
person.name:'woo';
2.注释
//:单行注释
/**/:多行注释
3.语句
建议每一行语句结束,使用分号结尾(有利于代码压缩)
5.使用
1》嵌入浏览器内部使用
script标签
把脚本置于 <body> 元素的底部,可改善显示速度,因为脚本编译会拖慢显示
2》外部引入脚本(不建议使用,适合在一个脚本用于多个页面中使用)
外部建立js脚本文件,使用script标签引用,src属性引入js文件路径
注意:使用了src属性的script标签,内部的代码会被解析器忽略。
外部脚本不能包含<script>标签
外部引入JavaScript的优势:
1.分离了HTML和代码
2.使HTML和JavaScript更易于阅读和维护
3.以缓存的JavaScript文件可以加速页面加载
(如需向一个页面添加多个脚本,使用多个script标签:
<script src="myscript1.js"></script>
<script src="myscript2.js"></script>
3》node 创建一个js文件,执行node xxx.js
6.局部变量和全局变量
1》什么是全局和局部?
2》如何声明?
局部变量:使用let/const声明的变量
使用var操作符并声明在函数内部
7.数据类型
共有6种数据类型,
console.log(typeof a)测试a的数据类型
typeof a:
返回值:a的数据类型,例如:
undefined:未定义
object(null+object)
number
boolean
而typeof 本身的数据类型时string
其中5种基本数据类型(简单数据类型,存放在栈区)
undefined:未定义
var a; //声明一个变量而不赋值时
既不声明也不赋值的,数据类型为undefined
null:空引用数据类型,即将指向堆区,而此时并未指向,var a=null;
undefined派生自null
undefined==null -> ture
undefined===null -> false
number:数值类型
10;十进制
10.3;浮点型
011;二进制
0xa;十六进制
NaN:not a number;不是一个数
infinity:无穷
isfinity====================================================================
isNaN(a):a是否不是一个数
若a是一个数,返回false
若a不是一个数,返回ture
boolean:
ture
false
string:字符串类型
在js中使用""或''包裹的字符
json字符串
字符串拼接:`` '' ""
1种引用数据类型(复杂数据类型存放在堆区对应栈区地址)
object:
function;
Array;
date;
正则;
......