JS
文章平均质量分 61
我要糖
这个作者很懒,什么都没留下…
展开
-
1-JS-浏览器-Document
Document浏览器环境,规格JavaScript 语言最初是为 Web 浏览器创建的。此后,它已经发展成为一种具有多种用途和平台的语言。平台可以是一个浏览器,一个 Web 服务器,或其他 主机(host),甚至可以是一个“智能”咖啡机,如果它能运行 JavaScript 的话。它们每个都提供了特定于平台的功能。JavaScript 规范将其称为 主机环境。主机环境提供了自己的对象和语言核心以外的函数。Web 浏览器提供了一种控制网页的方法。Node.JS 提供了服务器端功能,等等。有一个叫做原创 2021-03-02 16:02:55 · 1139 阅读 · 0 评论 -
6-JS-数据类型-Map 和 Set (映射和集合)
Map 和 Set (映射和集合)Map是一个带键的数据项的集合,就像一个对象一样。但是它们直接最大的差别是 Map 允许任何类型的键。方法和属性如下:new Map() —— 创建 map。map.set(key, value) —— 根据键存储值。map.get(key) —— 根据键来返回值,如果 map 中不存在对应的 key,则返回 undefined。map.has(key) —— 如果 key 存在则返回 true,否则返回 false。map.delete(key) ——原创 2021-02-24 10:51:29 · 575 阅读 · 0 评论 -
5-JS-数据类型-Iterable object (可迭代对象)
Iterable object (可迭代对象)可迭代(Iterable) 对象是数组的泛化。这个概念是说任何对象都可以被定制为可在 for..of 循环中使用的对象。数组是可迭代的。但不仅仅是数组。很多其他内建对象也都是可迭代的。例如字符串也是可迭代的。Symbol.itetator我们有一个对象,并不是数组,但是看上去很适合使用 for…in 循环。比如一个 range 对象,代表一个数字区别。let range = { from: 1, to: 5};// 我们希望 for..原创 2021-02-24 10:51:15 · 1233 阅读 · 0 评论 -
4-JS-数据类型-数组方法
数组方法添加/移除数组元素的方法之外splice如何删除元素,可以尝试 deletelet arr = ["I", "go", "home"];delete arr[1]; // remove "go"alert( arr[1] ); // undefined// now arr = ["I", , "home"];alert( arr.length ); // 3用 splice 删除let arr = ["I", "study", "JavaScript"];arr.s原创 2021-02-24 10:50:55 · 154 阅读 · 0 评论 -
3-JS-数据类型-数组
数组对象允许存储键值集合。但很多时候我们发现还需要 有序集合,里面的元素都是按顺序排列的。例如,我们可能需要存储一些列表,比如用户、商品以及 HTML 元素等。这里使用对象就不是很方便了,因为对象不能提供能够管理元素顺序的方法。我们不能在已有的元素“之间”插入一个新的属性。这种场景下对象就不太适用了。这时一个特殊的数据结构数组(Array)就派上用场了,它能存储有序的集合。声明创建一个空数组let arr = new Array();let arr = [];// 大多数情况下使用第二种原创 2021-02-24 10:50:38 · 148 阅读 · 0 评论 -
2-JS-数据类型-字符串
字符串引号字符串可以包含在单引号、双引号或反引号中:let single = 'single-quoted';let double = "double-quoted";let backticks = `backticks`;单引号和双引号基本相同,但是,反引号允许我们通过${…}将任何表达式嵌入到字符串中:function sum(a, b) { return a + b;}alert(`1 + 2 = ${sum(1, 2)}.`); // 1 + 2 = 3.而且反引号可原创 2021-02-24 10:50:20 · 340 阅读 · 0 评论 -
1-JS-数据类型-原始类型方法、数字类型
原始类型的方法我们来看看原始类型和对象之间的关键区别。一个原始值:是原始类型中的一种值。在 JavaScript 中有 7 种原始类型:string,number,bigint,boolean,symbol,null 和 undefined。一个对象:能够存储多个值作为属性。可以使用大括号 {} 创建对象,例如:{name: "John", age: 30}。JavaScript 中还有其他种类的对象,例如函数就是对象。关于对象的最好的事儿之一是,我们可以把一个函数作为对象的原创 2021-02-24 10:49:58 · 302 阅读 · 0 评论 -
6-JS-对象-原始值转换
对象——原始值转换ToPrimitive我们可以使用特殊的对象方法,对字符串和数值转换进行微调。下面是三个类型转换的变体,被称为 “hint”,在 规范 中有详细介绍(译注:当一个对象被用在需要原始值的上下文中时,例如,在 alert 或数学运算中,对象会被转换为原始值):“string”对象到字符串的转换,当我们对期望一个字符串的对象执行操作时,如 “alert”:// 输出alert(obj);// 将对象作为属性键anotherObj[obj] = 123;“number”对原创 2021-02-23 10:16:38 · 212 阅读 · 0 评论 -
5-JS-对象-Symbol类型
Symbol 类型根据规范,对象的属性键只能是字符串类型或者 Symbol 类型。不是 Number,也不是 Boolean,只有字符串或 Symbol 这两种类型。到目前为止,我们只见过字符串。Symbol 表示唯一的标识符。可以用 Symbol() 来创建这种类型的值:// id 是 symbol 的一个实例化对象let id = Symbol();创建时,我们可以给 Symbol 一个描述(也称为 Symbol 名),这在代码调试时非常有用:// id 是描述为 "id" 的 Sym原创 2021-02-23 10:15:52 · 408 阅读 · 0 评论 -
4-JS-对象-构造器和操作符 new
构造器和操作符 new构造函数命名以大写字母开头。只能由 new 操作符来执行。举例:function User(name) { this.name = name; this.isAdmin = false;}let user = new User("Jack");alert(user.name); // Jackalert(user.isAdmin); // false当一个函数被 new 操作符执行时,按照下面步骤:一个新的空对象被创建并分配给 this函数体原创 2021-02-23 10:14:50 · 82 阅读 · 0 评论 -
3-JS-对象-对象方法,this
对象方法,“this”let user = { name: "John", age: 30};方法示例:let user = { name: "John", age: 30};user.sayHi = function() { alert("Hello!");};user.sayHi(); // Hello!使用预先声明的函数作为方法let user = { // ...};// 首先,声明函数function sayHi() { alert(原创 2021-02-23 10:13:45 · 165 阅读 · 0 评论 -
2-JS-对象-引用、复制、深层克隆
对象引用和复制let message = "Hello!";let phrase = message;我们可以通过其中任意一个变量来访问该对象并修改它的内容let user = { name: 'John' };let admin = user;admin.name = 'Pete'; // 通过 "admin" 引用来修改alert(user.name); // 'Pete',修改能通过 "user" 引用看到通过引用来比较仅当两个对象为同一对象时,两者才相等。例如:a 和原创 2021-02-23 10:12:46 · 139 阅读 · 0 评论 -
1-JS-对象-文本属性、属性存在性测试,in
文本和属性let user = { // 一个对象 name: "John", // 键 "name",值 "John" age: 30 // 键 "age",值 30};//读取文件的属性alert( user.name ); // Johnalert( user.age ); // 30//增加一个布尔类型user.isAdmin = true;// delete 操作符移除属性delete user.age;用多字词语来作为属性名,必须加上引原创 2021-02-23 10:11:45 · 172 阅读 · 0 评论 -
13-JS-函数及箭头函数
函数函数声明function showMessage() { alert( 'Hello everyone!' );}//调用函数showMessage();showMessage();局部变量function showMessage() { let message = "Hello, I'm JavaScript!"; // 局部变量 alert( message );}showMessage(); // Hello, I'm JavaScript!alert(原创 2021-02-23 10:10:00 · 284 阅读 · 0 评论 -
12-JS-switch语句
switch 语句switch 语句可以替代多个 if 判断。语法:switch(x) { case 'value1': // if (x === 'value1') ... [break] case 'value2': // if (x === 'value2') ... [break] default: ... [break]}比较 x 值与第一个 case(也就是 value1)是否严格相等,然后比较第二个 case(v原创 2021-02-23 10:09:37 · 124 阅读 · 0 评论 -
11-JS-循环
循环:while 和 forwhile 循环let i = 0;while (i < 3) { // 依次显示 0、1 和 2 alert( i ); i++;}//--------------------或者:let i = 3;while (i) { // 当 i 变成 0 时,条件为假,循环终止 alert( i ); i--;}//-------------------或者://循环体至少执行一次let i = 0;do { alert( i原创 2021-02-23 10:09:14 · 117 阅读 · 0 评论 -
10-JS-逻辑运算符
逻辑运算符JS 中有三个逻辑运算符:||(或),&&(与),!(非)。|| 或alert( true || true ); // truealert( false || true ); // truealert( true || false ); // truealert( false || false ); // false举例:if (1 || 0) { // 工作原理相当于 if( true || false ) alert( 'truthy!' );}原创 2021-02-22 15:42:20 · 150 阅读 · 2 评论 -
9-JS-条件分支
条件分支if 语句举例:let year = prompt('In which year was ECMAScript-2015 specification published?', '');if (year == 2015) alert( 'You are right!' );也可以执行多个语句if (year == 2015) { alert( "That's correct!" ); alert( "You're so smart!" );}布尔转换if (0) { /原创 2021-02-22 15:41:21 · 137 阅读 · 0 评论 -
8-JS-值的比较
值的比较在 JavaScript 中,它们的编写方式如下:大于 / 小于:a > b,a < b。大于等于 / 小于等于:a >= b,a <= b。检查两个值的相等:a == b,请注意双等号 == 表示相等性检查,而单等号 a = b 表示赋值。检查两个值不相等。不相等在数学中的符号是 ≠,但在 JavaScript 中写成 a != b。比较结果为 Boolean 类型alert( 2 > 1 ); // true(正确)alert( 2 == 1转载 2021-02-22 15:40:25 · 479 阅读 · 0 评论 -
7-JS-运算符
术语:“一元运算符”,“二元运算符”,“运算元”运算元 —— 运算符应用的对象。比如说乘法运算 5 * 2,有两个运算元:左运算元 5 和右运算元 2。有时候人们也称其为“参数”而不是“运算元”。如果一个运算符对应的只有一个运算元,那么它是 一元运算符。比如说一元负号运算符(unary negation)-,它的作用是对数字进行正负转换:let x = 1;x = -x;alert( x ); // -1,一元负号运算符生效如果一个运算符拥有两个运算元,那么它是 二元运算符。减号还存在二原创 2021-02-22 15:39:30 · 184 阅读 · 0 评论 -
6-JS-类型转换
类型转换大多数情况下,运算符和函数会自动将赋予它们的值转换为正确的类型。比如,alert 会自动将任何值都转换为字符串以进行显示。算术运算符会将值转换为数字。在某些情况下,我们需要将值显式地转换为我们期望的类型。字符串转换当我们需要一个字符串形式的值时,就会进行字符串转换。比如,alert(value) 将 value 转换为字符串类型,然后显示这个值。我们也可以显式地调用 String(value) 来将 value 转换为字符串类型:let value = true;alert(typ原创 2021-02-22 15:38:26 · 94 阅读 · 0 评论 -
5-JS-交互:alert、prompt 和 confirm
交互:alert、prompt 和 confirmalert显示一条信息,并等待用户按下OK。alert("Hello");弹出的这个带有信息的小窗口被称为 模态窗。“modal” 意味着用户不能与页面的其他部分(例如点击其他按钮等)进行交互,直到他们处理完窗口。在上面示例这种情况下 —— 直到用户点击“确定”按钮。prompt接收两个参数:result = prompt(title, [default]);//显示一个带有文本消息的模态窗口,还有 input 框和确定、取消按钮// t原创 2021-02-22 15:37:51 · 270 阅读 · 1 评论 -
4-JS-Object 类型和 symbol 类型
Object 类型和 symbol 类型object 类型是一个特殊的类型。其他所有的数据类型都被称为“原始类型”,因为它们的值只包含一个单独的内容(字符串、数字或者其他)。相反,object 则用于储存数据集合和更复杂的实体。symbol 类型用于创建对象的唯一标识符。typeof 运算符typeof 运算符返回参数的类型。当我们想要分别处理不同类型值的时候,或者想快速进行数据类型检验时,非常有用。它支持两种语法形式:作为运算符:typeof x。函数形式:typeof(x)。换言之转载 2021-02-22 15:37:05 · 233 阅读 · 0 评论 -
3-JS-数据类型
数据类型// 没有错误let message = "hello";message = 123456;JS 中的值都具有特定的类型。例如,字符串或数字。有8种基本的数据类型(7种原始类型和1种引用类型)Number 类型let n = 123;n = 12.345;number 类型代表整数和浮点数。除了常规的数字,还包括了特殊数值, Infinity, -Infinity, NaN。Infinity 代表无穷大,可以通过除以0来得到它:alert(1/0); //Infini原创 2021-02-22 15:35:23 · 72 阅读 · 0 评论 -
2-JS-现代模式、变量、常量
现代模式 use strict长久以来,JavaScript 不断向前发展且并未带来任何兼容性问题。新的特性被加入,旧的功能也没有改变。这么做有利于兼容旧代码,但缺点是 JavaScript 创造者的任何错误或不完善的决定也将永远被保留在 JavaScript 语言中。这种情况一直持续到 2009 年 ECMAScript 5 (ES5) 的出现。ES5 规范增加了新的语言特性并且修改了一些已经存在的特性。为了保证旧的功能能够使用,大部分的修改是默认不生效的。你需要一个特殊的指令 —— "use st原创 2021-02-22 15:34:43 · 124 阅读 · 0 评论 -
1-JS-Helloworld
这里我用VScode编辑器进行代码的编写Hello world!JS 程序可以在 <!DOCTYPE HTML><html><body> <p> script 标签之前...</p> <script> alert('Hello,world!'); </script> <p> ...script 标签之后 </p></body>原创 2021-02-22 15:33:03 · 301 阅读 · 0 评论