概述
概念
javascript是一种可以与HTML标记语言混合使用的脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。其编写的程序可以直接在浏览器中解释执行,javascript的国际标准为ECMAScript。
特点
-
是一种解释性脚本语言(代码不进行预编译)
-
主要用来向HTML(标准通用语言下的一个应用)页面添加交互行为
-
可以直接嵌入HTML页面,但写成单独的js文件有利于结构和行为的分离
-
跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行(如Windows、Linux、Mac、Android、iOS等)
组成
ECMAScript,描述了该语言的语法和基本对象。
文档对象模型(DOM),描述处理网页内容的方法和接口。
浏览器对象模型(BOM),描述与浏览器进行交互的方法和接口。
注意
javascript和java语言除了名字有点像之外,并没有什么其他联系。主要用来做富客户端的开发。
js的声明
1.在head标签中使用script标签进行js代码域的声明
作用:声明js代码域
特点:js的代码只会作用于当前网页
2.在head标签中使用script标签引入外部声明好的js文件
作用:引入外部声明好的js文件
特点:实现js代码的重复使用,避免代码的冗余
注意:因为js在HTML文档中是一门单独的语言,可以声明在文档中的任意位置,一般情况先声明在head标签中
demo
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>js的声明和引入</title>
<!--js的声明第一种方式声明js代码域-->
<script type="text/javascript">
alert("这是我的第一个js代码")
</script>
<!--js的声明第二种方式引入外部声明好的js文件-->
<!--html5中type和charset可以省略-->
<script src="js/test.js" type="text/javascript" charset="UTF-8"></script>
</head>
<body>
<h3>js的声明和引入</h3>
</body>
</html>
外部js文件 demo
alert("我是外部声明");
js的变量和数据类型
js的变量:
js中的所有变量声明只有var关键字
注意:
1.js的变量名是严格区分大小写的
2.js中的字符串可以使用双引号也可以使用单引号
3.js中可以声明同名变量,不会报错,后面的会将前面的声明覆盖
js的数据类型:
数据类型判断关键字:typeof
数据类型:
number:数值类型
string:字符串类型
boolean:布尔类型
object:对象类型js的特殊值:
undefined:undefined类型 变量声明不赋值的情况下默认为undefined类型,默认值也是undefined
null: object类型 空对象赋值。主要是和undefined进行区分
NaN: number类型 not a numberjs变量强转:
使用Number()函数,将其他数据类型转换为数值类型,转换失败返回NaN(not a number)
使用Boolean()函数,将其他数据类型转换为布尔类型,有值返回true,无值返回false
demo:
var a = 123;
var A = 123; /*number类型*/
var a1 = 3.1415926; /*number类型*/
var a2 = "js"; /*string类型*/
var a3 = 'k'; /*string类型*/
var a4 = true; /*boolean类型*/
var a5 = new Date(); /*object类型*/
var b; /*undefined类型*/
var c = nudll; /*null类型*/
alert(a);
//-----------------------------------
var d = 1;
var e = "11";
var f = "哈哈";
var g;
alert(Number(e)); //11
alert(Number(f)); //NaN
alert(typeof Number(f)); //number
alert(Boolean(f)); //true
alert(Boolean(g)); //false
注意:在js代码中尽可能给变量赋初始值,否则可能出问题。
demo
var a;
alert(a);
alert(typeof b); /*没有声明,但是类型却是undefined*/
js的运算符
算数运算符
算数运算符:
加+ 减- 乘* 除/ 余数%
注意:
算数运算符中如果两边的数据类型不是number的话,会隐式使用Number()进行强转后再进行运算
字符串的+会作为字符串的连接,不会参与运算
1.number类型和number类型正常运算即可
2.number类型和boolean类型也可运算(true等价于1,false等价于0)
3.在字符串中"+"代表字符串的连接符,不会参与运算,其他符号可以运算
4.string类型和string类型数字(除+外其他运算符可以运算)
5.string类型数字和boolean类型(除+外其他运算符可以运算)
var a = "123a";
var b = 1;
var c = 2;
var d = true;
var e = "123";
var f = "23";
alert(b+c); //3
alert(b+d); //2
alert(a+b); //123a1
alert(e-b); //122
alert(e-f); //100
alert(e-d); //122
逻辑运算符
给定x=6, y=3
运算符 | 描述 | 例子 |
---|---|---|
! | not | !(x==y) 为 true |
&& | and | (x < 10 && y > 1) 为 true |
|| | or | (x==5 || y==5) 为 false |
注意:在js中单个的|和&表示按位进行运算,不能进行逻辑运算。和java中不同。
比较运算符
给定x = 5
运算符 | 描述 | 例子 |
---|---|---|
!= | 不等于 | x!=8 为 true |
> | 大于 | x>8 为 false |
< | 小于 | x<8 为 true |
>= | 大于或等于 | x>=8 为 false |
<= | 小于或等于 | x<=8 为 true |
== | 等于 | x==8 为 false |
=== | 全等(值和类型) | x===5 为 true;x==="5" 为 false |
注意:
等值运算符:==
先判断类型,类型一致则直接比较。类型不一致先使用Number()进行强转后再进行比较。
等同运算符:===
先判断类型,类型一致则再比较内容,内容也一致则返回true。类型不一致返回false
null和undefined在做==判断时返回true
自增运算符
给定x = 5, y=10
运算符 | 描述 | 例子 | 结果 |
---|---|---|---|
++ | 累加 | x=++y | x=6 |
-- | 递减 | x=--y | x=4 |
+= | x+=y | x=x+y | x=15 |
-= | x-=y | x=x-y | x=5 |