1 什么是javascript?
1.1概念
JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
JavaScript简称JS
1.2 javascript能干啥?
[1]动态的向HTML网页中插入内容
[2]动态的修改页面的元素的属性
[3]修改页面元素的内部内容
[4]修改页面元素的样式
[5]响应页面元素的事件
1.3js如何编写
[1]内置JS
JS是嵌套到HTML页面中的脚本语言,在HTML网页中编写在<script>标签中,script标签可以编写在网页的任何位置(一般情况下,我们也是编写在head中的。)。
JS没有类的概念,整个网页中的所有的script标签内部的代码都是在同一个作用域中的。
[2]外置JS
和外置的CSS一样,外置的JS可以被多个网页使用。
新建一个JS文件后缀为”.js”,再通过script标签引入到网页中。
2 数据类型
Javascript之所以叫javascript就是因为看上去很像java。但是js不是面向对象的,他是基于对象的弱数据类型语言。
2.1变量
存储数据的最小单元。
定义变量的语法: var 变量名; 可以同时使用 “=”直接赋值。也可以在之后再赋值。在申明变量时不需要申明变量的数据类型。甚至可以不写var。例如:
[2]数据类型
Js是弱数据类型,的动态的数据类型。
所谓弱数据类型,就是在申明变量时不确定变量的数据类型。赋值的时候才确定变量的数据类型。
所谓动态类型是说,同一个变量可以是不同的类型的值。
2.2数据类型
[1]数值型
数值型指的就是数组,分为整型和浮点型。
整型就是int,浮点型就是float。
其实赋值为整数就是整型,赋值为小数就是float型。
将float转换为int
[2]字符串
在JS中不区分字符和字符串,不区分单引号和双引号。
所以给变量赋值时, 如实使用了双引号或者单引号,则都是字符串类型。
[3]布尔型
在JS中所有的存在的数据都是true,不存在的都是false。
0是false,非0就是true。
空字符串=false,非空字符串就是true。
Null就是false,undefined都是false。其他对象都是true。
[4]特殊的类型
没有定义的变量:
没有初始值的变量就是undefined。
Null类型
NaN类型,不是数字的类型
2.3数据类型之间的转换
几乎所有的类型都会自动转换(在特殊的运算情况下)。
[1]其他类型转换为字符串
Tips:简单类型的转换,其实都是其字面的值。 对象或者dom对象,都会转换为其toString。
[2]String转换为其他类型
转换为数字:
Tips: “+” 和java是一样的可以做加法运算,也可以做字符串连接。
自动转换: 运算中不会产生歧义的情况下回自动转换。
如果转换失败:产生NaN
Tips:在算术运算中,如果使用任何数字和NaN做运算都会产生NaN结果。
运算过程中如果产生歧义需要强制类型转换:
结果是将20转换为字符串和a连接,强制转换结果:
强制类型转换为float的语法是:parseFloat(a);
强制类型转换的特殊情况:
如果是parseInt做强制类型转,在转换过程中会将可以转换的前面的数字部分转换为数字,其余部分丢弃掉。如果是字母开头的字符串,会转换为NaN。
String转换为布尔类型:
空字符串转化为false,非空字符串转换为true。
3.运算符
运算符和java中的运算符几乎没有任何区别。
算术运算符: +、-、*、/、%、++ 、- -
关系运算符: >、>=、<、<=、==、!=
逻辑运算符:! 、&& 、||
赋值运算符: =、+=…..
4 流程控制
4.1顺序
程序由上至下,逐行执行。
4.2分支
If系列
If(){}
If(){}else{}
If(){}else if(){}…else{}
由于js是弱数据类型型的。所有类型都可以自动转换为布尔类型。所有在java中if的条件中只能是布尔值,但是js中可以是任何类型的值。
Switch
Switch(表达式){
Case v1:
…
Break
…….
}
表达式可以是任何类型。
4.3循环
Java中的循环
While(){} do{}while(); for(){}
Js中是一样的。
5.函数
JS中的函数相当于java中的方法。
语法:
function 函数名(参数列表){
语句;
[return 返回值;]
}
函数名和java中方法名命名规则一致。
参数列表:由于是弱数据类型,申明参数时,不需要申明类型。直接写参数名称即可。
返回值:不需要申明返回值类型,有返回值就返回,没有返回值就返回。
函数的调用:函数调用只参考函数名,不关心函数的参数。
6.变量的作用域
最尝试的作用域。
在申明变量的上方使用变量, 显示undefind
不使用var申明的变量称之为隐式变量, 隐式变量默认是全局的。