JavaScript组成
一个完整版本的JavaScript由以下部分组成:ECMAScript:JavaScript的核心部分。浏览器和nodejs都可以使用。
JavaScript BOM:负责与浏览器窗口本身的交互部分。浏览器专属。
JavaScript DOM:负责与页面标签交互的部分。浏览器专属。
JavaScript的运行环境
浏览器:JavaScript是需要依附HTML页面进行执行的。nodejs:单独的一个JavaScript运行环境,可以单独运行JavaScript代码。
浏览器中使用JavaScript
有两种方式:(1)在 head /head 通过添加 script /script并向其中书写JavaScript代码(js代码)。
<script>
js代码
</script>
(2)引入js文件。在页面中添加script src=“js文件路径” /script 来引入js文件。js文件是以.js为后缀的一个文件,里面可以直接写js代码。
demo.js:
console.log("hello world");
html:
<script src="demo.js"> </script>
JavaScript输出
JavaScript中的输出有3种:document.write
概念:向页面上输出指定的信息
语法
document.write("需要输出的内容");
会把引号内的内容输出在页面上。
特点:
如果引号内是一个标签,document.write会把它解析为一个真正的标签。
console.log
概念:在控制台输出指定信息。
语法
console.log("需要输出的内容");
alert()
概念:页面弹窗输出指定信息。
语法
alert("需要输出的内容");
JavaScript输入
prompt()概念:可以将用户通过键盘输入的信息保存到程序中。可以用输出语句将内容再输出到页面上。
语法
prompt("提示性文字");
注释
概念:用于JavaScript中的对代码的说明文字。注释在程序运行时会被忽略。分类:
单行注释
// 注释内容 针对当前行有效
多行注释
/*
多行注释
*/
文档注释
特殊的多行注释,更多的是对整个js文档或对一大段代码(函数)进行说明。
/**
*
*文档注释
*/
变量
概念:一个可以保存数据的容器,每个容器(变量)里的数据都可以重复的被使用。使用:
先定义变量,声明要保存的数据。
通过变量名来使用所保存的数据。
定义变量
var 变量名 = 要保存的数据;
使用变量
在程序中直接以变量名来指代保存的数据。
修改变量的数据
变量名=新数据;
变量名规范
变量名只能包含字母、数字、_、$
不能以数字开头
尽量见词达意。比如:number 、count
数据类型
基本数据类型number:表示数字,比如1、2、0.1、-4.5
string:表示字符串,即文本。比如“中国杭州”、“123”(字符串是指被一对引号所包围起来的一段文本)
boolean:布尔型数据。表示程序中条件的正确或错误。只有两个取值。
true:表示正确
false:表示错误
symbol:表示符号类型。ES6新增的。每个symbol数据会表示一个唯一值。多用于表示对象属性的唯一。
undefined:特殊值,表示未定义。同时也是每个变量的默认值。
null:特殊值,表示对象的状态为空,一般用于对象数据处理,表示当前对象没有数据。
引用数据类型
object:表示对象。对象是一个复合型的数据,一个对象可以有多个键值对来保存多个数据。
数据类型之间的转换
字符串转数字
Number():会将某个数据转为数字,如果有小数部分,则保留;
parseInt():尝试将一个字符串转为整数,不保留小数位。如果无法转换,则得到NaN;
parseFloat:尝试将一个字符串转为数字,保留小数位。如果无法转换,则得到NaN;
数字转字符串
.toString():将数字转为字符串;
+对不同数据类型的处理
如果+号两边都是数字的话,就进行数学的加法运算。如果其中一边是字符串,那么会直接进行两者拼接,成一个大的字符串。console.log(2+3); //5
console.log("2"+"3"); //23
-对不同数据类型的处理
无论-号两边是不是字符串,都会进行减法运算。如果有字符串的话,会先尝试将其转为数字,进行运算。如果不能转为数字,则直接输出NaN (not a number)。运算符
概念:能够完成一些数字运算的特殊符号的集合。分类:算术运算符、赋值运算符、逻辑运算符、关系运算符、位运算符
算术运算符
概念:能够完成数学的加、减、乘、除以及余运算。运算符
+:加法
-:减法
* :乘法
/ :除法
% :余运算(一个数字不足以被除数整除的剩余的那部分。比如2%3为2;15%4的结果为3)
赋值运算符
概念:能够完成对变量进行快捷赋值的运算符的集合。赋值即修改变量所保存的数据。分类
= :对变量进行修改或赋予数据。将=右边表达式的结果赋给左边的变量。
+= :在变量原来的基础之上加上指定的数字,并把结果重新赋给变量。
-= :在变量原来的基础之上减去指定的数字,并把结果重新赋给变量。
* = :在变量原来的基础之上乘以指定的数字,并把结果重新赋给变量。
/= :在变量原来的基础之上除以指定的数字,并把结果重新赋给变量。
%= :在变量原来的基础之上对指定的数字取余,并把结果重新赋给变量。
++ :效果类似于+=1,即自增1.
-- :效果类似于-=1,即自减1.
当同一个表达式中出现多个++或--,需要根据++和--的位置来不同的计算。
当++或--在变量名后面时,在表达式中是先获取该变量的值,参与表达式的计算,之后再执行++或--
当++或--在变量名前面时,在表达式中是先执行++或--,之后再读取。
关系运算符
概念:指的是数据之间的关系的运算符的集合。分类
== :判断两个数据是否相等,不考虑数据类型,得到一个布尔型结果;
比如2==2为true,1==2为false。1=="1"为true,1=="2"为false
!= :判断两个数据是否不相等,不考虑数据类型。
1!=2为true,2!=2为false,1!="2"为true
> :判断两个数据是否是大于关系,返回布尔型数据。
比如1>2为false,2>1为true<br>
< :判断两个数据是否是小于关系,返回布尔型数据。
比如1<2为true,2<1为false
>= :判断两个数据是否是大于或等于的关系,返回布尔型数据。
比如1>=2为flase,2>=1为true
<= :判断两个数据是否是小于或等于的关系,返回布尔型数据。
比如1<=2为true,2<=1为false
=== :判断两个数据是否相等,数据类型也必须一样,得到一个布尔型结果。
比如2===2为true,2==="2"为false
=、==、===之间的区别
=是赋值运算符,==和===都是用于判断;==是只判断数值是否一样,数据类型不要求。===是数值和数据类型都要一样。
逻辑运算符
概念:可以完成多个条件的判断的运算符的集合。分类:
&&:用于连接两个关系语句,表示两个条件需要同时满足。最后也是得到布尔型数据。两个条件都为true,最终才为true,否则为false。
条件1 && 条件2
var num = 2;
document.write(num >0 && num <10);
||:用于连接两个关系语句,表示两个条件满足其中一个即可。最后也是得到布尔型数据。只要两个条件其中一个为true。最终结果为true。除非两个都是false,最终才为false。
条件1 || 条件2
var num = 2;
document.write(num < 1 || num > 9);
!:对条件的最终结果取反。
!条件
var num =10;
document.write(!(1>2)); //true
模板字符串(ES6)
背景
当在程序中需要拼接字符串,过多的+以及拼接变量时会比较繁琐以及不方便书写。概念
es6新增的用于快速实现拼接字符串的方式。也可以理解为新的字符串书写方式。特点
简洁无需+好进行拼接
对拼接变量更友好
语法
'字符串${变量或表达式}';
例子
var username = "starnight";
var age = "12";
var sex = "nv";
document.write('名字为${username},年龄为${age},性别为${sex}')