0%

理解迭代

在软件开发领域,“迭代”的意思是按照顺序反复多次执行一段程序,通常会有明确的终止条件

迭代就是循环执行,循环是迭代机制的基础,且迭代会在一个有序集合上进行。

在无迭代器时,迭代有两个缺点

  • 迭代之前需要事先知道如何使用数据结构
  • 遍历顺序并不是数据结构固有的

forEach()方法虽然解决单独记录索引和通过数组对象取得值的问题。不过,没有办法标识迭代何时终止

Read more »

对象

适合存储和应用程序间交换数据

创建Object实例方法

  1. 使用new操作符newObject
  2. 对象字面量{}
    1. 属性名可以是字符串或数值,数值属性会自动转换为字符串
    2. 属性名也可以是包含非字母数字字符,但要用中括号去存取

属性一般通过点语法获取,也能通过中括号,中括号内使用属性名的字符串形式

Read more »

理解对象

引用类型是把数据和功能组织到一起的结构,有点像类,但和类不是一个概念

对象被认为是某个特定引用类型的实例。新对象通过使用new操作符后跟一个构造函数来创建。构造函数就是用来创建新对象的函数

JavaScript中的对象是引用值,可以通过几种内置引用类型创建特定类型的对象

Read more »

通过变量使用原始值与引用值

  1. 原始值
    • 最简单的数据,大小固定,保存在栈内存中,保存原始值的变量按值访问
    • 不能有属性,但尝试添加属性不报错
    • 使用new关键字,Javascript会创建一个Object类型的实例,但其行为类似原始值
    • 赋值到另一个变量时,是新增一个新的原始值
  2. 引用值
    • 由多个值构成的对象,存储在堆内存中,保存引用值的变量按引用访问
    • 可以随时增删改其属性和方法
    • 赋值到另一个变量时,只是复制了指针地址,没有新增一个对象
Read more »

语法

  • 区分大小写

  • 标识符

    • 首字符为字母、下划线、美元符号
    • 建议使用驼峰大小写
    • 关键字、保留字、true、false、null不能为标识符
  • 注释

    • 单行注释//
    • 块注释/**/
  • 严格模式

    • 加一行"use strict"
    • 是一个预处理指令
  • 语句

    • 可以不分号结束,由解析器决定结尾,但建议都手动自己加分号

    • 大括号里是代码块

Read more »

<script>元素

  • async

  • crossorigin

    配置相关CORS设置

    • anonymous
    • use-credentials
  • defer

  • intergrity

    允许比对接收到的资源和指定的加密签名以验证子资源完整性,如果接收到的资源的签名与这个属性指定的签名不匹配,则页面会报错,脚本不会执行,用于确保内容分发网络(CDN,ContentDeliveryNetwork)不会提供恶意内容

  • src

    • 会忽略行内脚本
    • 不会受浏览器的同源策略限制,但返回并被执行的JavaScript则受限制
  • type

    • text/javascript
    • module
      • 会被当成ES6模块
      • 脚本加载解析过程与defer相同
Read more »

Javascript历史回顾

最开始是为了解决验证简单的表单需要大量与服务器的往返进行通信,由客户端处理输入验证

最早有两个版本的Javascript

  1. 网景的Javascript
  2. 微软IE的JScript

由于有两个版本的并存,急需要对Javascript进行规范其语法或特性标准,所以多家厂商联合,发布了ECMA-262,也就是ECMAScript这个脚本语法标准

Read more »

2022年希望有更好的明天