罗辫儿 _robin
读完需要
8分钟速读仅需 3 分钟
/ ES5-node /
1
开发环境:
1.操作系统:
Windows
Linux*
2.编辑器
Vscode/sublime...
Vi/vim*
3.js 解释器
HTML+CSS+js-->浏览器(不能独立运行 Js)
Nodejs*
2
起源
1.为了验证表单从而减轻服务器的压力
2.就是验证表单和动画效果还有浏览器 的兼容性毕竟你用 CSS3 animation 动画属性不是很完善
3.进化 ECMA 组织→JavaScript→ECMAScrip→ES→
ES5、ES6
3
整套 JavaScript
4
1.ECMAScript:
注释 // / /
变量
操作符
逻辑控制
对象
数组
函数
正则表达式
内置
5
2.DOM:document Object Model
它就是调用接口来对你的具体的 html 和 xml 就是 api 么
dom 模型 html / \ head body | | title p | | 'hello' '你好'
5.1
js 操作 html 代码
Var input = document.getElementsByTagName(“input”)
Var in=document.getElementById(“inid”)
html 代码:
hello
你好
6
3.BOM:browser Object Model
,开发人员可以使用 BOM 控制浏览器显示的页面以外的部分。弹出新浏览器窗口;移动,缩放,关闭浏览器的功能;提供浏览器详细信息的 navigator 对象;提供浏览器所加载页面的详细信息的 location 对象;
提供用户显示器分辨率详细信息的 screen 对象;对 cookies 的支持;支持 XMLHttpRequest,IE 中的 ActiveXObject 自定义对象 浏览器对象模型
说白了就是操作浏览器来显示效果的
6.1
js 操作浏览器
弹框:告警框、对话框、提示框
定时器:setInterval、SetTimeOut
httpRequest
ajax
常用的
window 是全局对象很多关于浏览器的脚本设置都是通过它。
location 则是与地址栏内容相关,比如想要跳转到某个页面,或者通过 URL 获取一定的内容。
浏览器:
火狐、谷歌、IE(ECMAScript 通用,DOM 和 BOM 兼容性)
调试:火狐:firebug
console.log()/弹框
js 解释器:
Nodejs(ECMAScript、网络编程、数据库编程、文件编程(IO)、硬件编程、VUE、React、ES6)
console.log()
调试:报错信息、通篇看一遍,断点、二分查找
7
js 的特点:
1.客户端、服务端运行:取决于运行平台,js 可以跨平台使用
2.解释性语言
Js--->解释器(浏览器、nodejs)
3.弱类型语言
var a=10;
var b=’hello world’;
4.从上到下顺序解析执行
8
浏览器开发使用:
*.html
.html .js
本地双击 html 文件打开的 file://
/var/www/html/xiangmu http://
nodejs 开发使用
$ node -v
$ node hello.js
$ node ~/ES5-day01/hello.js
$ node hello
$ node /var/www/html/you/js/world
$ node
> ECMAScript
> node 解释器的快捷操作命令 .help .save .exit
> var a=10;
> console.log(a)
> a //node 环境里的快捷使用的命令
9
10
变量:
容器,数据类型取决于容器里的值
Variables var
10.1
声明
var 变量名;
var sum;
var total;
var sumSalary;
10.2
赋值(初始化)
sum=10;
total=10.1;
var name=”笔记本”
10.3
使用
var price=sum*total;
console.log(name);
Var:
重复赋值(相同的数据类型、不同的数据类型)
变量的提升:解释器会先解析 var
11
数据类型:
11.1
强类型:
变量
不能重复的去声明、不能赋值给不同的数据类型、不能变量的提升
声明的时候就会有数据类型
整型:byte short int long
浮点型:float double
字符串:string
布尔型:boolean:true false
数组类型:array
类类型:object
空:null
弱类型:javascript
基本数据类型:
数字类型:Number
字符串:String
布尔类型:Boolean
引用数据类型:
11.2
类类型:
Object、Array、Function、Regprex
null
undefined extends null
NaN
Infinity
12
070: 78^1+ 08^0=56
0x11 : 116^1+116^0=17
NaN:not a number
13
局部变量与全局变量:
13.1
1) 使用 var 操作符定义的变量将成为定义该变量的作用域中的局部变量。
function test(){ var message = "hello";
} test(); alert(message); //错误
13.2
2) 如果在函数中定义变量没有加 var,该变量为全局变量
function test(){ message = "hello";
} test(); alert(message); //可以访问
/ 重点题目 /
.var let const 的区别(重点)A. var 全局声明变量,let,const 声明的变量只在 let,const 所在代码块内有效 B. var 存在变量提升,即变量可以在声明之前使用,值为 undefined let 声明的变量必须在声明后才可以使用,否则报错
console.log(a);//undefined var a = 2; a = 3; conole.log(a);//3 var a; console.log(a); a = 2; console.log(b);//报错ReferenceError let b = 3;
C. var 可以重复定义一个变量,后面覆盖前面的,而 let 不允许重复定义一个变量,否则报错。且 let,const 存在暂时性死区(TDZ),也就是 let,const 声明变量之前,该变量不可用,即 Let,const 封闭作用域。
tmp = 'abc'; console.log(tmp); let tmp; console.log(tmp); tmp = 123; console.log(tmp); }