什么是JavaScript?
JavaScript是一门高端的、动态的、弱类型的编程语言,非常适合面向对象和函数式的编程风格。
JavaScript是前端开发工程师必须掌握的三种技能之一:
- 描述网页内容的HTML、
- 描述网页样式的CSS
- 描述网页行为的JavaScript。
控制台
在使用JavaScript的时候我们可以利用浏览器进行操作:
打开浏览器右键打开检查
JavaScript引入方式
Script标签内写代码
引入额外的JS文件
JavaScript语言规范
注释
// 这是单行注释
/*
这是
多行注释
*/
结束符
JavaScript中的语句要以分号(;)为结束符。
JavaScript语言基础
变量声明
- JavaScript中的语句要以分号(;)为结束符。
- 声明变量使用 var 变量名; 的格式来进行声明,变量必须先声明才能使用.
var name = "LU";
var age = 18;
注意
变量名是区分大小写的。
推荐使用驼峰式命名规则。
保留字不能用做变量名。
JavaScript数据类型
JavaScript拥有动态类型
var x; // 此时x是undefined
var x = 1; // 此时x是数字
var x = "Alex" // 此时x是字符串
number数字类型
在JavaScript中不区分整数值和浮点值,所有数字均用浮点数值表示,数字格式的范围是~.
整型直接量
在JavaScript中,用一个数字序列表示一个十进制的整数,例如:
0
3
10000
除了十进制还有十六进制,十六进制就是以0x
或者0X
为前缀,其后跟随十六进制数串的直接量
0xff // 15*16+15 =255
JavaScript也允许八进制的直接量
0377 // 3*64 + 7*8 +7 =255
浮点型直接量
浮点型直接量可以含有小数点,它们采用的是传统的实数写法。一个实数由整数部分、小数点和小数部分组成。
此外,还可以使用指数记数法表示浮点型直接量,即在实数后跟字母e或E,后面再跟正负号,其后再加一个整型的指数。这种记数方法表示的数值,是由前面的实数乘以10的指数次幂。
可以使用更简洁的语法表示:
[digits][.digits][(E|e)[(+|-)]digits]
例如:
3.14
2345.789
.3333333
6.02e23
还有一种NaN,表示不是一个数字(Not a Number)。
string字符串类型
字符串是一组由16位值组成的不可变的有序序列,每个字符串通常来自于Unicode字符集.
例:
var a = "Hello"
var b = "world;
var c = a + b;
console.log(c); // 得到Helloworld
常用的方法
方法 | 说明 |
---|---|
.length | 返回长度 |
.trim() | 移除空白 |
.trimLeft() | 移除左边的空白 |
.trimRight() | 移除右边的空白 |
.charAt(n) | 返回第n个字符 |
.concat(value, ...) | 拼接 |
.indexOf(substring, start) | 子序列位置 |
.substring(from, to) | 根据索引获取子序列 |
.slice(start, end) | 切片 |
.toLowerCase() | 小写 |
.toUpperCase() | 大写 |
.split(delimiter, limit) | 分割 |
将字符串拼接+
var a = "Hello"
var b = "world;
var c = a + b;
console.log(c); // 得到Helloworld
转义字符
在JavaScript字符串中,反斜线()有着特殊的用途,反斜线符号后加一个字符,就不再表示它们的字面含义了,
underfined类型和null类型
- null表示值是空,一般在需要指定或清空一个变量时才会使用,如 name=null;
*undefined表示当声明一个变量但未初始化时,该变量的默认值是undefined。还有就是函数无明确的返回值时,返回的也是undefined。
null表示变量的值是空,undefined则表示只声明了变量,但还没有赋值。
boolean 布尔类型
区别于Python,true和false都是小写。
var a = true;
var b = false;
""(空字符串)、0、null、undefined、NaN都是false。
对象object
JavaScript 中的所有事物都是对象:字符串、数值、数组、函数...此外,JavaScript 允许自定义对象。
JavaScript 提供多个内建对象,比如 String、Date、Array 等等。
对象只是带有属性和方法的特殊数据类型。
数组
数组对象的作用是:使用单独的变量名来存储一系列的值。类似于Python中的列表。
var a = [123, "ABC"];
console.log(a[1]); // 输出"ABC"
JavaScript对象是一种复合值:它是属性或已命名值的集合。通过“.”符号来引用属性值。当属性值是一个函数的时候,称其为方法。通过o.m()来调用对象o中的方法。
常用的方法:
方法 | 说明 |
---|---|
.length | 数组的大小 |
.push(ele) | 尾部追加元素 |
.pop() | 获取尾部的元素 |
.unshift(ele) | 头部插入元素 |
.shift() | 头部移除元素 |
.slice(start, end) | 切片 |
.reverse() | 反转 |
.join(seq) | 将数组元素连接成字符串 |
.concat(val, ...) | 连接数组 |
.sort() | 排序 |
.forEach() | 将数组的每个元素传递给回调函数 |
.splice() | 删除元素,并向数组添加新元素。 |
.map() | 返回一个数组元素调用函数处理后的值的新数组 |
关于sort()需要注意:
如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。
如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于 b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值
示例:
function sortNumber(a,b){
return a - b
}
var arr1 = [11, 100, 22, 55, 33, 44]
arr1.sort(sortNumber)
关于遍历数组中的元素,可以使用下面的方式
var a = [10, 20, 30, 40];
for (var i=0;i