JS的组成
- JS: JavaScript 通常指的是前端浏览器中的一门语言。其实,JS由三部分组成
- BOM
- Browser Object Model(浏览器对象模型) 简而言之 是window对象
- DOM
- Document Object Model(文档对象模型) 简而言之是document对象
- ECMAScript
- 这是JS中核心语法部分(现在学习的部分是3.1版本 后面还有5 6 7 8 9 10…)
- BOM
通常而言,JS与ES可以通用。
JS中的常用事件
事件是属于BOM的。
事件的定义:
当用户进行页面操作时,会有各种行为产生。比如点击了一下、鼠标滑过某一个元素、鼠标双击、右击、键盘按下、键盘抬起、滚动滚轮等。
交互交互,不能只让用户自己操作,我们的页面也需要有“反应”。这些反应就通过事件来定义。
所以,就预先定义出来了各种各样的事件。它们按照类型可以进行如下划分
- 鼠标类
- 单击 click
- 双击 dblclick
- 右击 contextmenu
- 按下 mousedown
- 抬起 mouseup
- 移动 mousemove
- 进入 mouseover mouseenter
- 离开 mouseout mouseleave
- 键盘类
- 键盘键按下 keydown
- 键盘键抬起 keyup
- 键盘字符键 keypress
- 表单类
- 输入事件 input
- 改变事件 change
- 提交事件 submit
- 焦点类
- 获取焦点 focus
- 失去焦点 blur
- 其它事件
- 浏览器的卷动事件 scroll
- 浏览器的加载事件 load
- 浏览器的尺寸改变 resize
函数中的this
函数中有一个this关键字。它直接指向堆内存。
所以this不能使用=修改
this到底是谁? 定义的时候是无法确定的,只有当函数调用的时候,才能够确定。
总结: 谁调用这个函数,函数中的this就指向谁。如果调用者不明确,this默认指向window。
字符串
JS中的基本类型数据之一。
定义
-
字面量
-
构造函数
属性
- length
方法
// 字符串的存储形式
// 计算机中的一切都是二进制
// 数字的存储可以使用二进制 但是文字怎么存?
// 计算机中对每一个文字符号都进行了编码,这些编码是数字。计算机在存储的时候存的是编码。
// 但是当取出来使用的时候会再按照编码转为文字。
// 编码有很多种: ASCII码 是比较早的一个版本 它并没有把所有的文字都收录进去
// 所以ASCII码无法表示中文 后来随着时间的推移 就有了unicode编码 unicode 8 unicode 16 unicode 32等不同的版本
// UTF-8 就是unicode 8
// 它是将所有的文字都收录进去 所以也叫做“万国码”
// 字符串的比较 其实是再比较编码
// 比较规则: 拿着两个字符串的第一位比较编码 如果分出胜负就出结果 如果相同 去比较第二位的编码 以此类推
// 字符串的一些常用方法
// charAt
// var str = "abcdefg";
// var s = str.charAt(5); // 下标为5的字符
// console.log(s);
// charCodeAt
// var str = "abcde子啊g";
// var s = str.charCodeAt(5); // 下标为5的字符的unicdoe码
// console.log(s);
// concat
// var str = "abc";
// var str1 = str.concat("a", "b", "c", "dsdafsdafsad");
// console.log(str1);
// slice
// var str = "abcdefghijklm";
// var str1 = str.slice(1, -9);
// console.log(str1);
//split
var arr = ["a", "b", "c", "d", "e"];
var str = arr.join("*");
console.log(str);
var arr1 = str.split("*");
console.log(arr1);
// substring
// var str = "abcdefghijklm";
// var str1 = str.substring(1, 9);
// var str2 = str.substring(9, 1);
// console.log(str1);
// console.log(str2);
// substr
// var str = "abcdefghijklm";
// var str1 = str.substr(2, 6);
// var str2 = str.substring(1, 6);
// console.log(str1);
// console.log(str2);
// indexOf
// var str = "abcdefabcjklm";
// var a = str.indexOf("abc", 1);
// console.log(a);
// toUpperCase
// var str = "aAbBcCdD";
// console.log(str.toUpperCase());
// toLowerCase
// console.log(str.toLowerCase());
// replace
// var str = "今天天气好好";
// var str1 = str.replace("天天", "**");
// console.log(str);
// console.log(str1);
// match
// var str = "今天天气好好";
// var result = str.match("天天");
// console.log(result);
// search
// var str = "今天天气天天好好";
// var result = str.search("天天");
// console.log(result);
- concat
- charAt
- charCodeAt
- slice
- substr
- substring
- split
- toLowerCase
- toUpperCase
- replace
- match
- search
- indexOf
严格模式
简介
严格模式是ES5中新增的一种书写模式。比之前的要求更加严格。