JavaScript
javascript 有三部分构成,ECMAScript,DOM和BOM
JavaScriot诞生与发展
起初的诞生是为了 验证表单:减轻服务器的压力
ECMA组织——>JavaScript——>ECMAScript——>ES
ES5与ES6
https://www.jianshu.com/p/477a0bbc0c1d
一整套JavaScript
1.ECMAScript:
- 注释 // /* */
- 变量
- 操作符
- 逻辑控制
- 对象
- 数组
- 函数
- 正则表达式
- 内置。。。。
2.DOM:document Object Model
- js操作html代码
- Var input = document.getElementsByTagName(“input”)
- Var in=document.getElementById(“inid”)
3.BOM:browser Object Model
- js操作浏览器
- 弹框:告警框、对话框、提示框
- 定时器:setInterval、SetTimeOut、httpRequest、ajax
js的解析
浏览器:
火狐、谷歌、IE(ECMAScript通用,DOM和BOM兼容性)
js解释器:
Nodejs(ECMAScript、网络编程、数据库编程、文件编程(IO)、React、ES6)
调试方法:看报错信息、通篇看一遍,断点、二分查找
js开发使用
浏览器开发使用
*.html <script></script>
*.html *.js <script src></script>
本地双击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环境里的快捷使用的命令
js的特点:
-
客户端、服务器运行:取决于运行平台,js可以跨平台使用
-
解释性语言
js——>解释器(浏览器、nodejs)
-
弱类型语言
关键字 var(ES5)
var=10 -
从上而下顺序解析执行
node环境下有关js的一些小注意点
-
在node中alert(a)是会报错的,因为alert()是BOM操作
-
node环境里,不是ES语法,示例中的b是node提供的快捷操作,最好还是按照标准语法里写
var 100;
console.log(b);
b
- .save后面必须跟file名
变量var(variable )
变量是一个值的容器,该容器的值可以随时改变,数据类型取决于容器里的值。
ECMAScript的变量是弱类型(松散类型),可以用来保存任何类型的数据。
定义变量时使用var关键字。
变量名的命名规则
- 变量名由字母,数字,下划线以及$组成。
- 不要使用下划线或者数字作为变量名的开头
- 变量名应该具有一定的意义,使用小驼峰命名规则 var userAgeTotal = “”;
- 不要使用关键字或是保留字
变量的使用
- 声明 var message;
- 初始化 message = “hello”
- 声明并初始化 var message = “hello”;
- 定义多个变量 var message= “hello”,found=false, age = 29;
声明
- var 变量名;
- var sum;
- var total;
- var sumSalary;
赋值
- sum=10;
- tatal=10.2
- var name=‘笔记本’ (声明与赋值同时使用是可以的)
使用
- var price=sum*total
- console.log(name)
var与其他语言的不同点
-
可以重复赋值(相同的数据类型、不同的数据类型)11:10
-
变量提升:解析器会先解析var
console.log(a); var a=2; 相当于 var a; console.log(a); a=2; console.log(b);//报错ReferenceError let b=2;
只声明不赋值去使用,就会报undefined关键字
强类型
变量:不能重复地去声明、不能赋值给不同的数据类型、不能在声明的时候就会有数据类型
- 整型:byte short int long
- 浮点型:float double
- 字符串:string
- 布尔型:boolean :true false
- 数组类型:array
上面的基本数据类型放在栈,下面的引用类型放在堆里
类类型:object
空:null
弱类型
JavaScript为弱类型,常见数据类型如下
-
数字类型:Number
-
字符串:String
-
布尔类型:Boolean
-
类类型:Object Array Function Regprex (引用类型)
-
null
-
undefined派生自(extends)null,是null的子类,都归类为引用类型,如果将undefined与null做比较,结果肯定为true
比较null与undefined == 相等 === 不完全相等
Number类型 注意点
直接用dom解析去获得数据库表单数据之后,没有进行数据类型的判断与转义,转换成合适的数据类型