JavaScript(1)

146 阅读2分钟

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==2true1==2false1=="1"true1=="2"false
!= :判断两个数据是否不相等,不考虑数据类型。
1!=2true2!=2false1!="2"true
> :判断两个数据是否是大于关系,返回布尔型数据。
比如1>2false2>1true<br>
< :判断两个数据是否是小于关系,返回布尔型数据。
比如1<2true2<1false
>= :判断两个数据是否是大于或等于的关系,返回布尔型数据。
比如1>=2为flase,2>=1true
<= :判断两个数据是否是小于或等于的关系,返回布尔型数据。
比如1<=2true2<=1false
=== :判断两个数据是否相等,数据类型也必须一样,得到一个布尔型结果。
比如2===2true2==="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}')