JavaScript
javascript的作用:
游戏、页面动效、表单验证、服务端、智能检索。
js:运行在客户端(浏览器)的解释型脚本语言。
高级语言----->二进制语言 翻译
翻译: 编译型和解释型
- 解释型: 代码从上向下一边解释一边运行,javascript。由js引擎来进行的。
浏览器内核:渲染引擎,js引擎。 - 编译:一次性编译成可以执行的二进制文件,统一运行。java c
- JavaScript一种在浏览器中解释运行的脚本语言,它的解释器被称为JavaScript引擎,为浏 览器的一部分, 是广泛用于客户端的脚本语言,最早是在HTML网页上使用,用来给HTML(HTML5)网页 增加动态功能。
javascript历史
1995年,网景公司发明了一款navigator0.9版本的浏览器,公认成熟。
- 缺点:不能交互,不能进行表单验证,网景公司找到布兰登·艾奇,来开发livescript的语言。用于表单验证、交互,在navigator2.0版本上运行。
1996年,微软公司在exporer3.0上运行了jscript.
1997年,网景公司把javascript1.0版本交给ECMA(欧洲计算机制造商协会)做标准化。
JS和H5的关系
H5狭义上,指HTML的第五个版本;广义上指web前端的所有技术,由于web前端是在H5出 现后开始火爆起来,所 以,习惯上把web前端也叫H5。web前端开发也叫H5开发,包括 HTML,CSS,JavaScript,等一切前端技术。
B/S架构
browser:浏览器 客户端
server: 服务器 服务端
JS组成:ECMAS如此平台(语法),DOM,BOM
- DOM:document object model 文档对象模型
- BOM:browser object model 浏览器对象模型
- JS本质: 可以通过JS操作文档,浏览器
JavaScript编写以及如何运行JS代码
JS有3种书写位置,分别是行内、内嵌、外部
行内式:
//<button onclick='alert(1)'>按钮</button>
外链式:
<script src="my.js"></script>
外链式不要再script、标签中写代码,如果想写,在下面写
<script></script>
内嵌式:
写在HTML结构的底部,为了能够获取页面中的内容才写在最下面的。
- // 单行注释:代码的解释说明
- /**/ 多行注释
变量
- 变量的概念: 存储数据的容器
- 变量的定义:
2.1 先声明,后赋值
var x;---->声明变量
x = 10;---->赋值
2.2 声明的同时赋值
var y = 20;
// 注意:变量一定要先声明后赋值
2.3 可以同时声明多个变量,在进行赋值
var x,y,z;
x = 10;
y = 20;
z = 30;
- 变量的命名规范和规则
3.1 变量的命名有字母、数字、下划线、美元符号。现在已经支持汉字,但不推荐。
3.2 不能以数字开头。
3.3 不能是关键字和保留字。
3.4 区分大小写。
3.5 规范:见名识意。
3.6 驼峰命名法
如果多个单词组成,第一个单词全部小写,从第二个单词开始,首字母全部大写。
数据类型:对数据的分类
数据类型的种类:
基本数据类型: 字符串(string),数字(number),未定义(undefined),空(null),布尔(Boolean)
复杂数据类型:对象。
检测数据类型:typeof 关键字
1.1 字符串(string):单引号或双引号引起来“123” “true”
数字和字符串是可以进行拼接的。
1.2 数值类型(number):整数,小数,二进制,八进制,十六进制
10 ,20.1 ,-10,0100110,054,0xabef01,NAN:number类型,但是不是数字
nan的由来:在参与运算的过程中,出现了无法表示的数字的时候。
1.3 undefined 未定义
var x;
console.log(x); ---->只声明,未赋值。
1.4 Boolean 布尔值
console.log(true); 是 真 对
console.log(false); 否 假 错
console.log(typeof true);—>boolean 布尔类型
1.5 null 空
var a=null; 后期a将重新赋值成对象
console.log(typeof a); object
字符串转为数值类型
- Number()
结论一:Number()可以将冲数字的字符转为数值
结论二:Number()可以将非纯数字的字符串转为NAN,也是数值类型 - parseInt()
结论一:parseInt()可以将纯数字的字符串转为数值
结论二: parseInt()可以将数字开头的字符串转为数字
结论三: parseInt()可以将非数字开头的字符串转为NaN,也是属于number类型
结论四: parseInt()保留整数 - parseFloat()
结论一: parseFloat()保留小数点后面的数字
结论二: parseFloat()数字开头的字符串转为数字 - 隐式转换 - * / %
var str = '100';//字符串
console.log(typeof str);// 检测str的类型为string
console.log(typeof Number(str));//通过Number()将str转换为数字,再进行检测
结论:
1. Number()和parseInt()的不同点:
parseInt()可以将数字开头的字符串转为数字,Number()只能将纯数字转为数字类型
2. parseInt()和parseFloat()的不同点:
parseInt()将字符串转为整数
parseFloat()将字符串转为 小数
转为Boolean类型:
- Boolean()
console.log(boolean(x)); - !!
console.log(!!x);
数字转为字符串
- num.toString()
ring(num)
算术运算符:+ - * / %
+: 拼接 (字符串和字符串,字符串和数字相加)
+: 求和
赋值运算符
var a = 10; //将10赋值给10
a += 20; //等价于 a = a+20 将左边a和右边20求和,再重新赋值给a
数值类型:10 10.1 NaN
NaN: 非数字的number类型
isNaN() :帮助我们检测是否是非数字,是非数字结果为true,不是非数字结果是false
底层会调用Number()方法
关系运算符: > < >= <= == != === !==
关系运算符比较出的结果是布尔类型值
console.log(10==‘10’); //只比较值,不比较类型
console.log(10===‘10’);//既比较值,也比较类型
逻辑运算符
&&(与) ||(或) !(非)
&&: 与
console.log(3>5>4);// 错误
console.log(3>5&&5>4); // 一假即假 false
||: 或 一真即真(整个表达式有一个真,结果就是真)
! : 非 取反
a++;在a的基础上加1
++a: 在a的基础上加1
区别:单独使用时,都是自身加1
在参与输出,赋值,等操作时,a++和++a是有区别的
1. a++ 先输出a,再自身加1
2. ++a 先加1,再输出