前端复习之旅---JS基础

变量定义

var:
1.通过 var 关键词定义的全局变量属于 window 对象:
2.允许在程序的任何位置使用 var 重新声明 JavaScript 变量:
3.通过 var 声明的变量会提升到顶端。

let
1.通过 let 关键词定义的全局变量不属于 window 对象:
2.在相同的作用域,或在相同的块中,通过 let 重新声明一个 var 变量是不允许的:
  在相同的作用域,或在相同的块中,通过 var 重新声明一个 let 变量是不允许的:
  在相同的作用域,或在相同的块中,通过 let 重新声明一个 let 变量是不允许的:
  在不同的作用域或块中,通过 let 重新声明变量是允许的:
3.通过 let 定义的变量不会被提升到顶端。

const
1.通过 const 定义的变量与 let 变量类似,但不能重新赋值:
2.JavaScript const 变量必须在声明时赋值:
3.如果我们将一个原始值赋给常量,我们就不能改变原始值:
  您可以更改常量对象的属性:但是您无法重新为常量对象赋值:
  您可以更改常量数组的元素:但是您无法重新为常量数组赋值:
4.在同一作用域或块中,不允许将已有的 var 或 let 变量重新声明或重新赋值给 const:
  在同一作用域或块中,为已有的 const 变量重新声明声明或赋值是不允许的:
  在另外的作用域或块中重新声明 const 是允许的:
5.通过 const 定义的变量不会被提升到顶端。
  const 变量不能在声明之前使用:

数据类型

1.字符串值(string),数值(number),布尔值(boolean),数组(Array),对象(object)。
2.typeof 运算符返回变量或表达式的类型:
3.typeof 运算符对数组返回 "object",因为在 JavaScript 中数组属于对象。
4.在 JavaScript 中,没有值的变量,其值是 undefined。typeof 也返回 undefined。
   任何变量均可通过设置值为 undefined 进行清空。其类型也将是 undefined。
5.空值与 undefined 不是一回事。空的字符串变量既有值也有类型。
6.在 JavaScript 中,null 是 "nothing"。它被看做不存在的事物。
   null 的数据类型是对象。您可以通过设置值为 null 清空对象:您也可以通过设置值为 undefined 清空对象:
7.Undefined 与 Null 的区别:Undefined 与 null 的值相等,但类型不相等: 
8.原始数据值是一种没有额外属性和方法的单一简单数据值。typeof 运算符可返回以下原始类型(string number boolean undefined)
9.复杂数据:typeof 运算符可返回以下两种类型之一:function/object
  typeof 运算符把对象、数组或 null 返回 object。
  typeof 运算符把函数 返回 function。

函数

1.函数中的代码将在其他代码调用该函数时执行:

  •    当事件发生时(当用户点击按钮时)
  •    当 JavaScript 代码调用时
  •    自动的(自调用)

2.当 JavaScript 到达 return 语句,函数将停止执行。
3.举个例子:toCelsius 引用的是函数对象,而 toCelsius() 引用的是函数结果。访问没有 () 的函数将返回函数定义。

对象

1.值以名称:值对的方式来书写(名称和值由冒号分隔)。JavaScript 对象是被命名值的容器。
2.名称:值对被称为属性。方法是在对象上执行的动作,方法以函数定义被存储在属性中。
3.this 指的是“拥有” fullName 函数的 person 对象。换言之,this.firstName 的意思是 this 对象的 firstName 属性。
4.访问对象属性:
(1)objectName.propertyName
(2)objectName["propertyName"]
5.访问对象方法:objectName.methodName()。
(如果您不使用 () 访问 fullName 方法,则将返回函数定义。方法实际上是以属性值的形式     存储的函数定义。)
6.请不要把字符串、数值和布尔值声明为对象!

常见的 HTML 事件

onchange     HTML 元素已被改变
onclick    用户点击了 HTML 元素
onmouseover    用户把鼠标移动到 HTML 元素上
onmouseout    用户把鼠标移开 HTML 元素
onkeydown    用户按下键盘按键
onload    浏览器已经完成页面加载

特殊字符

代码  结果描述
\' '  单引号
\" "双引号
\\ 反斜杠
代码  结果
\b退格键
\f 换页
\n新行
\r回车
\t水平制表符
\v 垂直制表符

字符串

字符串方法

 说明:所有字符串方法都会返回新字符串。它们不会修改原始字符串。
  正式地说:字符串是不可变的:字符串不能更改,只能替换。
1.length 属性返回字符串的长度:
2.indexOf() 方法返回字符串中指定文本首次出现的索引(位置):
  lastIndexOf() 方法返回指定文本在字符串中最后一次出现的索引:
  lastIndexOf() 方法返回指定文本在字符串中最后一次出现的索引:
  两种方法都接受作为检索起始位置的第二个参数:str.indexOf("China", 18)。
3.search() 方法搜索特定值的字符串,并返回匹配的位置:
  两种方法,indexOf() 与 search(),是相等的。
  这两种方法是不相等的。区别在于:
   search() 方法无法设置第二个开始位置参数。
   indexOf() 方法无法设置更强大的搜索值(正则表达式)
4.提取部分字符串
 有三种提取部分字符串的方法:

  •   slice(start, end)  起始索引(开始位置),终止索引(结束位置)。如果省略第二个参数,则该方法将裁剪字符串的剩余部分。可以使用负数索引,从结尾处开始计数。
  •   substring(start, end)  无法接受负的索引。
  •   substr(start, length)  第二个参数规定被提取部分的长度.如果省略第二个参数,则该 substr() 将裁剪字符串的剩余部分。首个参数为负,则从字符串的结尾计算位置。

5.replace() 方法用另一个值替换在字符串中指定的值.不会改变调用它的字符串。
    它返回的是新字符串。只替换首个匹配。
    对大小写敏感。如需执行大小写不敏感的替换,请使用正则表达式 /i(大小写不敏感):如需替换所有匹配,请使用正则表达式的 g 标志(用于全局搜索)例:str.replace(/Microsoft/g, "W3School")
6.toUpperCase() 把字符串转换为大写;
   toLowerCase() 把字符串转换为小写。
7. concat() 连接两个或多个字符串。可用于代替加运算符。例:text1.concat(" ",text2);
8.String.trim() :trim() 方法删除字符串两端的空白符。
   Internet Explorer 8 或更低版本不支持 trim() 方法。
9.根据位置提取字符串字符 

  •   charAt(index) 方法返回字符串中指定下标(位置)的字符串。
  •   charCodeAt(index) 方法返回字符串中指定索引的字符 unicode 编码:
  •   str[index] H5新增的

10.split('分隔符') 将字符串转换为数组。

字符串搜索

1.String.indexOf()  :indexOf() 方法返回指定文本在字符串中第一次出现(的位置)的索引:
2.String.lastIndexOf()  :lastIndexOf() 方法返回指定文本在字符串中最后一次出现的索引:
  如果未找到文本,indexOf() 和 lastIndexOf() 都返回 -1:
  这两种方法都接受第二个参数作为搜索的开始位置。例:str.indexOf("locate", 15)    
3.String.search() :search() 方法在字符串中搜索指定值并返回匹配的位置:不能接受第二个起始位置参数。
4.String.match() :match() 方法根据正则表达式在字符串中搜索匹配项,并将匹配项作为 Array 对象返回。例:text.match(/ain/g)    // 返回数组 [ain,ain,ain]
5.String.includes() :如果字符串包含指定值,includes() 方法返回 true。string.includes(searchvalue, start) 第二个参数为开始搜索的位置。
6.String.startsWith() :如果字符串以指定值开头,则 startsWith() 方法返回 true,否则返回 false:string.startsWith(searchvalue, start)
   startsWith() 方法区分大小写。
   Internet Explorer 不支持 startsWith() 方法。
7.String.endsWith() :如果字符串以指定值结尾,则 endsWith() 方法返回 true,否则返回 false:string.endswith(searchvalue, length) 第二个参数为要搜索的长度。
   例:text.endsWith("world", 11)    // 返回 true   检索以 "world" 结尾的字符串的前 11 个字符。
   endsWith() 方法区分大小写。
   Internet Explorer 不支持 endsWith() 方法。

字符串模板  Back-Tics 语法

https://www.w3school.com.cn/js/js_string_templates.asp
1.模板字面量使用反引号 (``) 而不是引号 ("") 来定义字符串:
2.通过使用模板字面量,您可以在字符串中同时使用单引号和双引号:
3.模板字面量允许多行字符串:
4.插值:模板字面量提供了一种将变量和表达式插入字符串的简单方法。
   该方法称为字符串插值(string interpolation)。
   语法:${...}
5.变量替换:模板字面量允许字符串中的变量。
  例:let text = `Welcome ${firstName}, ${lastName}!`;
  用真实值自动替换变量称为字符串插值。
6.表达式替换:模板字面量允许字符串中的表达式。例:let total = `Total: ${(price * (1 + VAT)).toFixed(2)}`;
   用真实值自动替换表达式称为字符串插值。

数字

简述

1.JavaScript 只有一种数值类型。书写数值时带不带小数点均可。
  超大或超小的数可通过科学计数法来写:var x = 123e5;  var y = 123e-5; 
2.JavaScript 数值始终是 64 位的浮点数。
  整数(不使用指数或科学计数法)会被精确到 15 位。
  小数的最大数是 17 位,但是浮点的算数并不总是 100% 精准:
3.JavaScript 的加法和级联(concatenation)都使用 + 运算符。 数字用加法。字符串用级联。
4.NaN 属于 JavaScript 保留词,指示某个数不是合法数。
  可使用全局 JavaScript 函数 isNaN() 来确定某个值是否是数:
  NaN 是数,typeof NaN 返回 number:
5.Infinity (或 -Infinity)是 JavaScript 在计算数时超出最大可能数范围时返回的值。
   一个数除以 0(零)也会生成 Infinity:
  Infinity 是数:typeOf Infinity 返回 number。
6.JavaScript 会把前缀为 0x 的数值常量解释为十六进制。一些 JavaScript 版本会把带有前导零的数解释为八进制。
  可以使用 toString() 方法把数输出为十六进制、八进制或二进制。例:myNumber.toString(16); 

数字方法

所有数字方法可用于任意类型的数字(字面量、变量或表达式):
1.toString() 方法:以字符串返回数值。所有 JavaScript 对象都拥有 toString() 方法。
2.toExponential() 方法:返回字符串值,它包含已被四舍五入并使用指数计数法的数字。参数定义小数点后的字符数。
3.toFixed() 方法:返回字符串值,它包含了指定位数小数的数字:toFixed(2) 非常适合处理金钱。x.toFixed(4);  // 返回 9.6560
4.toPrecision() 返回字符串值,它包含了指定长度的数字:x.toPrecision(4);  // 返回 9.656
5.valueOf() 以数值返回数值:所有 JavaScript 数据类型都有 valueOf() 和 toString() 方法。
6.把变量转换为数值
  这三种 JavaScript 方法可用于将变量转换为数字:
  (1)Number() 方法 : 返回数字,由其参数转换而来。 
       可用于把 JavaScript 变量转换为数值:  例; x = true; Number(x);        // 返回 1
       Number() 还可以把日期转换为数字:例:Number(new Date("2019-04-15"));    // 返回 1506729600000 毫秒数
  (2)parseInt() 方法 :解析其参数并返回浮点数。
        解析一段字符串并返回数值。允许空格。只返回首个数字:例:parseInt("10 years");   // 返回 10
  (3)parseFloat() 方法 :解析其参数并返回浮点数。
        解析一段字符串并返回数值。允许空格。只返回首个数字:
  这些方法并非数字方法,而是全局 JavaScript 方法。
  如果无法转换为数值,则返回 NaN (Not a Number)。
7.数值属性
   MAX_VALUE 返回 JavaScript 中可能的最大数字。
   MIN_VALUE 返回 JavaScript 中可能的最小数字。
   数字属性不可用于变量???


数组

1.创建:

  • 使用数组文本是创建 JavaScript 数组最简单的方法。例:var cars = ["Saab", "Volvo", "BMW"];
  •  使用 JavaScript 关键词 new。例:var cars = new Array("Saab", "Volvo", "BMW");

2.访问数组元素:我们通过引用索引号(下标号)来引用某个数组元素。 cars[0]
3.改变数组元素:cars[0] = "Opel";
4.访问完整数组:document.getElementById("demo").innerHTML = cars; 
5.数组是对象:数组是一种特殊类型的对象。在 JavaScript 中对数组使用 typeof 运算符会返回 "object"。
6.属性:

(1)length 属性返回数组的长度(数组元素的数目)。length 属性始终大于最高数组索引(下标)。

(2) 遍历数组元素:

  • 1.遍历数组的最安全方法是使用 "for" 循环
  •  2.也可以使用 Array.foreach() 函数

(3)添加数组元素:

  • 最佳方法是使用 push() 方法:
  • 使用 length 属性向数组添加新元素:fruits[fruits.length] = "Lemon"; 

(4)如何识别数组:

  • Array.isArray():返回true或false。
  • 创建一个函数判断是否为数组:
    function isArray(x) {
     return x.constructor.toString().indexOf("Array") > -1;
    }
                                                 }

  • 假如对象由给定的构造器创建,则 instanceof 运算符返回 true:

         例:var fruits = ["Banana", "Orange", "Apple", "Mango"];
                 fruits instanceof Array     // 返回 true


7.方法:

(1)把数组转换为字符串:

  • toString() 把数组转换为数组值(逗号分隔)的字符串。
  • join(“分隔符”) 方法也可将所有数组元素结合为一个字符串。

(2)pop()和push()

  • Popping:pop() 方法从数组中删除最后一个元素:返回“被弹出”的值。
  • Pushing:push() 方法(在数组结尾处)向数组添加一个新的元素:有参数,返回新数组的长度。

(3)位移元素:

  • shift() 方法会删除首个数组元素,并把所有其他元素“位移”到更低的索引。返回被“位移出”的字符串。
  •  unshift() 方法(在开头)向数组添加新元素,并“反向位移”旧元素:返回新数组的长度。

(4)更改元素:

     通过使用它们的索引号来访问数组元素:fruits[0] = "Kiwi";  // 把 fruits 的第一个元素改为 "Kiwi"
(5)删除元素:

     可以使用 JavaScript delete 运算符来删除:delete fruits[0]; // 把 fruits 中的首个元素改为 undefined
     使用 delete 会在数组留下未定义的空洞。请使用 pop() 或 shift() 取而代之。
(6)拼接数组:

    splice() 方法可用于向数组添加新项:
array.splice(index,howmany,item1,.....,itemX)  //(开始插入或删除的位置,定义删除多少元素,插入的新元素)返回一个包含已删除项的数组。
   使用 splice() 在数组中不留“空洞”的情况下移除元素:fruits.splice(0, 1);        // 删除 fruits 中的第一个元素
(7)合并(连接)数组:

     concat() 方法通过合并(连接)现有数组来创建一个新数组:

  • var myChildren = arr1.concat(arr2, arr3);   // 将arr1、arr2 与 arr3 连接在一起
  • concat() 方法也可以将值作为参数:arr1.concat(["Emil", "Tobias", "Linus"]); 

(8)裁剪数组:

   slice(startindex,endindex) 方法用数组的某个片段切出新数组。

(9)自动 toString():

   如果需要原始值,则 JavaScript 会自动把数组转换为字符串。所有 JavaScript 对象都拥有 toString() 方法。


8.数组排序:

(1)数组排序:sort() 方法以字母顺序对数组进行排序:sort() 方法是最强大的数组方法之一。

(2)反转数组:reverse() 方法反转数组中的元素。可以使用它以降序对数组进行排序。

(3)比值函数:function(a, b){return a-b}。例:

  • 升序排列:arr.sort(function(a, b){return b - a});(a-b //降序)
  • 以随机顺序排序数组:arr.sort(function(a, b){return 0.5 - Math.random()});
  •  查找最高(或最低)的数组值,排序之后可以这样查找:

             // 现在 points[0] 包含最低值
            // 而 points[points.length-1] 包含最高值。 但是效率低。
 (4)最高值和最低值:

         Math.max()/Math.min()
         Math.max.apply([1, 2, 3]) 等于 Math.max(1, 2, 3)。
9.数组迭代:

(1)Array.forEach():

forEach(myFunction) 方法为每个数组元素调用一次函数(回调函数)。

该函数接受 3 个参数:myFunction(项目值,项目索引,数组本身){}
(2)Array.map():

map() 方法通过对每个数组元素执行函数来创建新数组。

map() 方法不会对没有值的数组元素执行函数。
map() 方法不会更改原始数组。

该函数接受 3 个参数:myFunction(项目值,项目索引,数组本身){};
(3)Array.filter():

filter() 方法创建一个包含通过测试的数组元素的新数组。

该函数接受 3 个参数:myFunction(项目值,项目索引,数组本身){};
(4)Array.reduce()

reduce() 方法在每个数组元素上运行函数,以生成(减少它)单个值。
reduce() 方法在数组中从左到右工作。另请参阅 reduceRight()。
reduce() 方法不会减少原始数组。
reduce() 方法能够接受一个初始值:arr1.reduce(myFunction, 100);
该函数接受 4 个参数:myFunction(总数(初始值/先前返回的值),项目值,项目索引,数组本身);
(5)Array.reduceRight():

从右到左工作,其他同(4)。
(6)Array.every():

every() 方法检查所有数组值是否通过测试。

该函数接受 3 个参数:myFunction(项目值,项目索引,数组本身);

返回true or false。
(7)Array.some():

some() 方法检查某些数组值是否通过了测试。

该函数接受 3 个参数:myFunction(项目值,项目索引,数组本身);

返回true or false。
(8)Array.indexOf():

indexOf() 方法在数组中搜索元素值并返回其位置。array.indexOf(item, start)
Array.lastIndexOf() :从数组结尾开始搜索。
如果未找到,则返回-1;
(9)Array.find():

find() 方法返回通过测试函数的第一个数组元素的值。该函数接受 3 个参数:myFunction(value, index, array);
(10)Array.findIndex():

findIndex() 方法返回通过测试函数的第一个数组元素的索引。该函数接受 3 个参数:myFunction(value, index, array);
10.数组 Const:

    用 const 声明的数组不能重新赋值。它不定义常量数组。它定义的是对数组的常量引用。因此,我们仍然可以更改常量数组的元素。

    元素可以重新赋值,可以更改常量数组的元素。声明时赋值:JavaScript const 变量在声明时必须赋值:
    用 const 声明的数组具有块作用域。

日期

1.实例化:var d = new Date();
2.创建 Date 对象:Date 对象由新的 Date() 构造函数创建。
   有 4 种方法创建新的日期对象:
   new Date()
   new Date(year, month, day, hours, minutes, seconds, milliseconds)
   new Date(milliseconds):从日期字符串创建一个新的日期对象:
   new Date(date string):从日期字符串创建一个新的日期对象:
注:JavaScript 从 0 到 11 计算月份。一月是 0。十二月是11。
      一位和两位数年份将被解释为 19xx 年:
3.显示日期:JavaScript(默认情况下)将以全文本字符串格式输出日期:
                   在 HTML 中显示日期对象时,会使用 toString() 方法自动转换为字符串。
4.日期格式:
    类型    实例
    ISO 日期    "2018-02-19" (国际标准)
    短日期    "02/19/2018" 或者 "2018/02/19"
    长日期    "Feb 19 2018" 或者 "19 Feb 2019"
    完整日期    "Monday February 25 2015"
5.日期获取方法
    getDate()    以数值返回天(1-31)
    getDay()    以数值获取周名(0-6)
    getFullYear()    获取四位的年(yyyy)
    getHours()    获取小时(0-23)
    getMilliseconds()    获取毫秒(0-999)
    getMinutes()    获取分(0-59)
    getMonth()    获取月(0-11)
    getSeconds()    获取秒(0-59)
    getTime()    获取时间(从 1970 年 1 月 1 日至今):方法返回自 1970 年 1 月 1 日以来的毫秒数:

UTC 日期方法
  UTC 日期方法用于处理 UTC 日期(通用时区日期,Univeral Time Zone dates):方法    描述
    getUTCDate()    等于 getDate(),但返回 UTC 日期
    getUTCDay()    等于 getDay(),但返回 UTC 日
    getUTCFullYear()    等于 getFullYear(),但返回 UTC 年
    getUTCHours()    等于 getHours(),但返回 UTC 小时
    getUTCMilliseconds()    等于 getMilliseconds(),但返回 UTC 毫秒
    getUTCMinutes()    等于 getMinutes(),但返回 UTC 分
    getUTCMonth()    等于 getMonth(),但返回 UTC 月
    getUTCSeconds()    等于 getSeconds(),但返回 UTC 秒
6.日期设置方法
    设置方法用于设置日期的某个部分。下面是最常用的方法(按照字母顺序排序):
    方法    描述
    setDate()    以数值(1-31)设置日:setDate() 方法也可用于将天数添加到日期:         d.setDate(d.getDate() + 50);
    setFullYear()    设置年(可选月和日):setFullYear() 方法可以选择设置月和日。
    setHours()    设置小时(0-23)
    setMilliseconds()    设置毫秒(0-999)
    setMinutes()    设置分(0-59)
    setMonth()    设置月(0-11)
    setSeconds()    设置秒(0-59)
    setTime()    设置时间(从 1970 年 1 月 1 日至今的毫秒数)

数学

Math对象没有构造函数。方法和属性是静态的。
1.Math.round(x) 的返回值是 x 四舍五入为最接近的整数:
2.Math.ceil(x) 的返回值是 x 上舍入最接近的整数:
3.Math.floor(x) 的返回值是 x 下舍入最接近的整数:
4.Math.pow(x, y) 的返回值是 x 的 y 次幂:
5.Math.sqrt(x) 返回 x 的平方根:
6.Math.abs(x) 返回 x 的绝对(正)值:
7.Math.sin(x) 返回角 x(以弧度计)的正弦(介于 -1 与 1 之间的值)。
  如果您希望使用角度替代弧度,则需要将角度转换为弧度:Angle in radians = Angle in degrees x PI / 180.例:Math.sin(90 * Math.PI / 180);     // 返回 1(90 度的正弦)
8.Math.cos(x) 返回角 x(以弧度计)的余弦(介于 -1 与 1 之间的值)。例:Math.cos(0 * Math.PI / 180);     // 返回 1(0 度的余弦)
9.Math.min() 和 Math.max() 可用于查找参数列表中的最低或最高值:
10.Math.random() 返回介于 0(包括) 与 1(不包括) 之间的随机数:Math.random() 总是返回小于 1 的数。
        (1)返回介于 min(包括)和 max(不包括)之间的随机数:
    function getRndInteger(min, max) {
        return Math.floor(Math.random() * (max - min) ) + min;
    }
        (2)返回介于 min 和 max(都包括)之间的随机数:
    function getRndInteger(min, max) {
        return Math.floor(Math.random() * (max - min + 1) ) + min;
    }
11.Math 属性(常量)
    JavaScript 提供了可由 Math 对象访问的 8 个数学常量:
    实例
    Math.E          // 返回欧拉指数(Euler's number)
    Math.PI         // 返回圆周率(PI)
    Math.SQRT2      // 返回 2 的平方根
    Math.SQRT1_2    // 返回 1/2 的平方根
    Math.LN2        // 返回 2 的自然对数
    Math.LN10       // 返回 10 的自然对数
    Math.LOG2E      // 返回以 2 为底的 e 的对数(约等于 1.414)
    Math.LOG10E     // 返回以 10 为底的 e 的对数(约等于0.434)

 逻辑

Boolean() 函数来确定表达式(或变量)是否为真:
所有具有“真实”值的即为 True:

  • 任何(非空)字符串是 true
  • 即使字符串 'false' 也是 true
  • 任何表达式(除了零)是 true

 所有不具有“真实”值的即为 False:

  • 0(零)/-0 (负零)的布尔值为 false。
  • ""(空值)的布尔值为 false。
  • undefined 的布尔值是 false。
  • false 的布尔值(正如您猜到的)是 false:
  • null 的布尔值是 false:
  • NaN 的布尔值是 false:
比较

条件(三元)运算符:variablename = (condition) ? value1:value2

条件

使用 if 来规定要执行的代码块,如果指定条件为 true
使用 else 来规定要执行的代码块,如果相同的条件为 false
使用 else if 来规定要测试的新条件,如果第一个条件为 false
使用 switch 来规定多个被执行的备选代码块

循环

1.for - 多次遍历代码块
2.for/in - 遍历对象属性:
  for (key in object) {
    // code block to be executed
  }
3.while - 当指定条件为 true 时循环一段代码块
4.do/while - 当指定条件为 true 时循环一段代码块
5.For Of 循环
  JavaScript for of 语句循环遍历可迭代对象的值。
  它允许您循环遍历可迭代的数据结构,例如数组、字符串、映射、节点列表等:
  for (variable of iterable) {
    // code block to be executed
  }
   variable - 对于每次迭代,下一个属性的值都会分配给变量。变量可以用 const、let 或 var 声明。
   iterable - 具有可迭代属性的对象。
6.break 语句“跳出”循环。
  continue 语句“跳过”循环中的一个迭代。

类型转换

1.确定类型typeof
在 JavaScript 中有 5 种不同的可以包含值的数据类型:
  string
  number
  boolean
  object
  function  function
有 6 种类型的对象:
  Object
  Date       object
  Array      object
  String 
  Number
  Boolean
以及 2 种不能包含值的数据类型:
  null       object
  undefined   undefined
NaN 的数据类型是数字。
2.constructor 属性返回所有 JavaScript 变量的构造函数。
3.数据类型转变
Number() 转换数值,String() 转换字符串,Boolean() 转换布尔值。
   (1)把数值,布尔,日期转换为字符串:

  • 全局方法 String() 能够把数字转换为字符串。它可用于任意类型的数字、文字、变量或表达式。
  • 数字方法 toString() 同理。

   (2)把字符串转换为数值:

  • 全局方法 Number() 可把字符串转换为数字。(空的字符串转换为 0。其他字符串将转换为 NaN(Not a number,不是数字)。)
  • 一元的 + 运算符可用于把变量转换为数字:例:var y = "5";      // y 是字符串 var x = + y;      // x 是数字

   (3)把布尔转换数值:全局方法 Number() 也可把布尔转换为数字。false// 返回 0;true// 返回 1。
   (4)把日期转换为数字:

  • 全局方法 Number() 可用于把日期转换为数字。
  • 日期方法 getTime() 同理。

正则表达式

1.正则表达式是构成搜索模式(search pattern)的字符序列。
  在 JavaScript 中,正则表达式常用于两个字符串方法:search() 和 replace():
            search() 方法使用表达式来搜索匹配,然后返回匹配的位置。
            replace() 方法返回模式被替换处修改后的字符串。
match() 方法根据正则表达式在字符串中搜索匹配项,并将匹配项作为 Array 对象返回。例:text.match(/ain/g)    // 返回数组 [ain,ain,ain]
2.正则表达式修饰符:
        修饰符可用于大小写不敏感的更全局的搜素:

        修饰符  描述
执行对大小写不敏感的匹配
g执行全局匹配(查找所有匹配而非在找到第一个匹配后停止
m执行多行匹配


3.正则表达式模式:
        括号用于查找一定范围的字符串:

表达式 描述
 [abc]  查找方括号之间的任何字
[0-9]    查找任何从 0 至 9 的数字
(x|y) 查找由 | 分隔的任何选项


4.字符(Metacharacter)是拥有特殊含义的字符:

元字符描述
\d  查找数字
\s查找空白字符
\b 匹配单词边界
\uxxxx查找以十六进制数 xxxx 规定的 Unicode 字符


5.Quantifiers 定义量词:

量词描述
n+匹配任何包含至少一个 n 的字符串
n*匹配任何包含零个或多个 n 的字符串
n?匹配任何包含零个或一个 n 的字符串


6.RegExp 对象是带有预定义属性和方法的正则表达式对象。
 (1)test() 是一个正则表达式方法。它通过模式来搜索字符串,然后根据结果返回 true 或 false。
 (2)exec() 方法是一个正则表达式方法。它通过指定的模式(pattern)搜索字符串,并返回已找到的文本。如果未找到匹配,则返回 null。

异常  

https://www.w3school.com.cn/js/js_errors.asp
try 语句使您能够测试代码块中的错误。
catch 语句允许您处理错误。
throw 语句允许您创建自定义错误。
finally 使您能够执行代码,在 try 和 catch 之后,无论结果如何。
 try {
      供测试的代码块
 }
  catch(err) {
      处理错误的代码块
 } 

提升(Hoisting)是 JavaScript 将声明移至顶部的默认行为。提升的是声明,不会提升赋值。
"use strict" 指令只能在脚本或函数的开头被识别。(严格声明)

this 关键词

JavaScript this 关键词指的是它所属的对象。
在对象方法中,this 指的是此方法的“拥有者”。
在单独使用时,拥有者是全局对象,因此 this 指的是全局对象。
在严格模式下,this 是未定义的(undefined)
在 HTML 事件处理程序中,this 指的是接收此事件的 HTML 元素:
call() 和 apply() 方法是预定义的 JavaScript 方法。
它们都可以用于将另一个对象作为参数调用对象方法。

箭头函数

箭头函数允许我们编写更短的函数
语法:hello = () => {
  return "Hello World!";
}
箭头函数默认返回值:hello = () => "Hello World!";
带参数的箭头函数:hello = (val) => "Hello " + val;如果只有一个参数,您也可以略过括号:hello = val => "Hello " + val;

JavaScript 类不是对象。它只是 JavaScript 对象的模板。
创建类:请使用关键字 class 创建类。
             请始终添加名为 constructor() 的方法:
使用类:如果您有一个类,那么您可以使用该类来创建对象:let myCar1 = new Car("Ford", 2014);

JSON

JSON 的语法是来自 JavaScript 对象符号的语法,但 JSON 格式是纯文本。读取和生成 JSON 数据的代码可以在任何编程语言编写的。
JSON 实例:
    {
         "employees":[
           {"firstName":"Bill", "lastName":"Gates"}, 
           {"firstName":"Steve", "lastName":"Jobs"},
           {"firstName":"Alan", "lastName":"Turing"}
          ]
    }
JSON 语法规则:
     数据是名称/值对
     数据由逗号分隔
     花括号保存对象
     方括号保存数组
JSON 对象:JSON 对象是在花括号内书写的。
JSON 数组:JSON 数组在方括号中书写。
使用 JavaScript 的内建函数 JSON.parse() 来把这个字符串转换为 JavaScript 对象:var obj = JSON.parse(text);

JavaScript 调试

1.使用 console.log() 在调试窗口中显示 JavaScript 的值
2.在调试窗口中,您可在 JavaScript 代码中设置断点。
3.debugger 关键词:debugger 关键词会停止 JavaScript 的执行,并调用(如果有)调试函数。

样式指南
1.代码约定:代码约定(Coding conventions)指的是编程的样式指导方针。
2.变量名:对标识符名称(变量和函数)使用了驼峰式大小写;所有名称以字母开头。
3.对象规则
针对对象定义的通用规则:
   把开括号与对象名放在同一行
   在每个属性与其值之间使用冒号加一个空格
   不要在最后一个属性值对后面写逗号
   请在新行上写闭括号,不带前导空格
   请始终以分号结束对象定义
4.使用小写文件名

获取元素属性
1.element.属性:div.id
2.getAttribute('属性') :div.getAttribute('id')
设置属性 data-开头
1.element.属性=“值”;
2.setAttribute('属性',值),主要是自定义属性
移除属性: div.removeAttribute('index')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值