来调用函数或计算表达式

前端之JavaScript

 

JavaScript概念

什么是JavaScript

JavaScript是由三部分组成:
  1. 核心
  2. 文档对象模型(DOM)
  3. 浏览器对象模型(BOM)
 
JavaScript 是脚本语言
JavaScript 是一种轻量级的编程语言。
JavaScript 是可插入 HTML 页面的编程代码。
JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。
JavaScript 很容易学习。

JS的引入方式

1
2
3
4
5
6
7
#script标签引入JS代码
<script>
    //JS代码
</script>
 
#引入额外的JS文件
<script src="myscrpits.js"></script>

  

JS代码的注释

1
2
3
4
5
6
7
#单行注释
//这是单行注释
 
#多行注释
/*
这是多行的注释
*/

注意:JavaScript中的语句要以分号(;)为结束符。

JS的变量声明

1.JavaScript的变量名可以使用_,数字,字母,$组成,不能以数字开头。
2.声明变量使用 var 变量名; 的格式来进行声明。
1
2
var name = "shier"
var age = "16"
注意:
变量名是区分大小写的。
推荐使用驼峰式命名规则。
保留字不能用做变量名。

JS的数据类型

1.JS拥有的动态类型
1
2
3
var x; // 此时x是undefined
var x = 1;    //此时x是数字
var x = "shier"   //此时x是字符串

2.JS的数字类型

1
2
3
4
5
6
7
8
9
10
11
var b = 12.34;
var c = 20;
var c = 12e5;
//在JS中不分整型和浮点型、只有一种数字类型。
//在JS中海油一种NaN、表示不是一个数字(Not a Number)
parseInt("133")    //如果为数字返回数字否则返回NaN
133
parseInt("AAA")
NaN
parseFloat("123123.123123")
123123.123123

3.在JS中拼接字符串一般使用"+" 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
string.slice(start, stop)和string.substring(start, stop):
 
两者的相同点:
如果start等于end,返回空字符串
如果stop参数省略,则取到字符串末
如果某个参数超过string的长度,这个参数会被替换为string的长度
 
substirng()的特点:
如果 start > stop ,start和stop将被交换
如果参数是负数或者不是数字,将会被0替换
 
silce()的特点:
如果 start > stop 不会交换两者
如果start小于0,则切割从字符串末尾往前数的第abs(start)个的字符开始(包括该位置的字符)
如果stop小于0,则切割在从字符串末尾往前数的第abs(stop)个字符结束(不包含该位置字符)

4.JS的字符串

1
2
3
4
5
6
7
8
var a = "Hello"
undefined
var b = "shier"
undefined
var c = a + b
undefined
console.log(c) //得到字符串拼接的结果
Helloshier

JS字符串的常用方法:

方法

说明

.length

返回长度

.trim()

移除空白

.trimLeft()

移除左边的空白

.trimRight()

移除右边的空白

.charAt(n)

返回第n个字符

.concat(value, ...)

拼接

.indexOf(substring, start)

子序列位置

.substring(from, to)

根据索引获取子序列

.slice(start, end)

切片

.toLowerCase()

小写

.toUpperCase()

大写

.split(delimiter, limit)

分割

5.JS的布尔类型  

1
2
var a = true;
var b = false;

(空字符串)、0、null、undefined,NaN都是false。 

6.JS的数组

1
2
3
4
var a = [123,"abc"]
undefined
console.log(a)
[123, "abc"]

数组常用的方法:

方法

说明

.length

数组的大小

.push(ele)

尾部追加元素

.pop()

获取尾部的元素

.unshift(ele)

头部插入元素

.shift()

头部移除元素

.slice(start, end)

切片

.reverse()

反转

.join(seq)

将数组元素连接成字符串

.concat(val, ...)

连接数组

.sort()

排序

关于sort排序的问题:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/*如果调用sort方法时没有传入参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。
 
如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
 
若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于 b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值。
*/
 
// 根据上面的规则自行实现一个排序函数:
 
 
function sortNumber(a,b) {
  return a - b
}
 
// 调用sort方法时将定义好的排序函数传入即可。
stringObj.sort(sortNumber)
 
//例如
var list = [3,4,65,123,4,3,2]
undefined
list.sort()
[123, 2, 3, 3, 4, 4, 65]    //未传入函数的排序
list.sort(sortNumber)
[2, 3, 3, 4, 4, 65, 123]    //传入函数之后的排序

遍历数组中的元素:  

1
2
3
4
5
6
7
8
9
var a = [10,20,30,40];
for (var i=0;i<a.length;i++) {
    console.log(i);
}
>>
0
1
2
32
7.null和undefined的区别
1).null表示值是空,一般在需要指定或清空一个变量时才会使用,如 name=null;
2).undefined表示当声明一个变量但未初始化时,该变量的默认值是undefined。还有就是函数无明确的返回值时,返回的也是undefined。
null表示变量的值是空,undefined则表示只声明了变量,但还没有赋值。

 

8.JS的类型查询  

1
2
3
4
5
6
7
8
typeof "abc" //string
"string"
typeof null //object
"object"
typeof true //boolean
"boolean"
typeof 123 //number
"number"
typeof是一个一元运算符(就像++,--,!,- 等一元运算符),不是一个函数,也不是一个语句。
对变量或值调用 typeof 运算符将返回下列值之一:
  • undefined - 如果变量是 Undefined 类型的
  • boolean - 如果变量是 Boolean 类型的
  • number - 如果变量是 Number 类型的
  • string - 如果变量是 String 类型的
  • object - 如果变量是一种引用类型或 Null 类型的

JS的运算符

1.算术运算
基本的算术运算有+ - *  /  % ++ --
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
3 + 3
6
6 - 3
3
6 * 3
18
6 / 3
2
6 % 3
0
6 % 2
0
6 % 4
2
#
var a = 1
a ++
1
a ++
2
a ++
3
a ++
4
a ++     //自增
#
var a = 5
a --
5
a --
4
a --
3
a --    //自减
2

2.比较运算

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var a = 3
var b = 2
a > b
true
a < b
false
a != b
true
a == b
false
a === b
false
a !== b
true

需要注意的是:  

1
2
3
4
1 == "1"
true
1 === "1"
false
强等于: === 既判断值相不相等还判断类型相不相等
弱等于: == 只判断值相不相等

3.逻辑运算  

1
2
3
4
5
6
7
8
true && false
false
true || false
true
!true
false
!false
true

4.赋值运算  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//+=
var a = 1
a +=3
4
a +=3
7
//-=
var a = 3
a -= 2
1
//*=
var a = 3
a *= 3
9
// /=
var a = 4
a /= 2
2

5.流程控制  

switch中的case子句通常都会加break语句,否则程序会继续执行后续case中的语句。  

6.for循环  

7.while循环  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var i=0;
while (i<10) {
    console.log(i);
    i++;
}
VM83:2 0
VM83:2 1
VM83:2 2
VM83:2 3
VM83:2 4
VM83:2 5
VM83:2 6
VM83:2 7
VM83:2 8
VM83:2 9
9

8.三元表达式  

JS中的函数

1.函数的定义

JS函数的作用域

局部变量:在JS的函数内部声明的变量(var声明)是局部变量,所以只能在函数的内部访问他,(该变量的作用域是函数内部)。只要函数运行完毕,本地变量就会被删除。
全局变量:在函数外部声明的变量是全局变量,网页上的所有脚本和所有的函数都能访问他。
变量的生存周期:JS变量的声明周期从他们被声明的时间开始,局部变量会在函数运行后被删除。全局比那里会在页面关闭后被删除。
作用域:函数内部查找变量的顺序是从局部到全局。

JS词法分析

JS的内置对象和方法

JS中的所有事物都是对象:字符串,数字,数组,日期,等等。在JS中,对象式拥有属性和方法的数据。
注意var s1 = "abc"和var s2 = new String("abc")的区别:typeof s1 --> string而 typeof s2 --> Object

1.自定义对象

2.Date对象  

JS之Json对象

JS的正则

math对象

BOM

BOM(Browser Object Model)是指浏览器对象模型,它使 JavaScript 有能力与浏览器进行“对话”。

window对象

所有的浏览器都支持window对象,他表示浏览器窗口。
所有的JS全局对象,函数以及变量均字典称为window对象的成员。
全局变量是 window 对象的属性。全局函数是 window 对象的方法。
接下来要讲的HTML DOM 的 document 也是 window 对象的属性之一。
一些常用的Window方法:
  1. window.innerHeight - 浏览器窗口的内部高度
  2. window.innerWidth - 浏览器窗口的内部宽度
  3. window.open() - 打开新窗口
  4. window.close() - 关闭当前窗口
1.history对象:
 View Code
2.localtion对象
window.location 对象用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面。
常用属性和方法:
 View Code
3.弹出框
可以在 JavaScript 中创建三种消息框:警告框、确认框、提示框。
警告框
警告框经常用于确保用户可以得到某些信息。
当警告框出现后,用户需要点击确定按钮才能继续进行操作。
 View Code
4.确认框
确认框用于使用户可以验证或者接受某些信息。
当确认框出现后,用户需要点击确定或者取消按钮才能继续进行操作。
如果用户点击确认,那么返回值为 true。如果用户点击取消,那么返回值为 false。
5.计时相关操作
通过使用 JavaScript,我们可以在一定时间间隔之后来执行代码,而不是在函数被调用后立即执行。我们称之为计时事件。

6.清除计时器

 View Code
7.setInterval
setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。
setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。
 View Code

//他会不停的出现提示框。

8.clearInterval
clearInterval() 方法可取消由 setInterval() 设置的 timeout。
clearInterval() 方法的参数必须是由 setInterval() 返回的 ID 值。

定时器实例:  

 定时器实例

DOM

DOM(Document Object Model)是一套对文档的内容进行抽象和概念化的方法。 
当页面被加载的时候,浏览器会创建页面的文档对象模型(DOM)。
 

HTML文档的DOM树

DOM标准规定HTML文档中的每个成分都是一个节点(node):

  1. 文档节点(document对象):代表整个文档 
  2. 元素节点(element 对象):代表一个元素(标签) 
  3. 文本节点(text对象):代表元素(标签)中的文本 
  4. 属性节点(attribute对象):代表一个属性,元素(标签)才有属性 
  5. 注释是注释节点(comment对象)  
JavaScript 可以通过DOM创建动态的 HTML:
  1. JavaScript 能够改变页面中的所有 HTML 元素 
  2. JavaScript 能够改变页面中的所有 HTML 属性 
  3. JavaScript 能够改变页面中的所有 CSS 样式 
  4. JavaScript 能够对页面中的所有事件做出反应

DOM查找HTML标签

注意:涉及DOM操作的JS代码应该放在文档的body的结尾位置。

间接查找  

创建标签

添加节点

语法:
 追加一个子节点(作为最后的子节点)
somenode.appendChild(newnode);
把增加的节点放到某个节点的前边。
somenode.insertBefore(newnode,某个节点);

删除节点

属性节点

posted on 2018-03-19 13:43  私人回忆海滩  阅读(274)  评论(0编辑  收藏  举报

导航