ES5-1 发展史、ECMA、编程语言、变量、JS值

1. 5大主流浏览器及内核(自主研发)

浏览器内核
IEtrident
Chromewebkit blink
Safariwebkit
Firefoxgecko
Operapresto

2. 浏览器的历史 和 JS诞生

  1. 1989-1991 WorldWideWeb(后来为了避免与万维网混淆而改名为Nexus)是世界上第一个网页浏览器及所见即所得网页编辑器,由万维网的发明人蒂姆·伯纳斯-李开发
    在这里插入图片描述

v8
直接翻译机器码
独立于浏览器运行(Node.js 就是一个基于 Chrome V8 引擎的 JavaScript 运行环境。)

3. ECMA

  • European Computer Manufactures Association
  • 欧洲计算机制造联合会
  • 评估、开发、认可电信、计算机标准
  • ECMA - 262 脚本语言规范 ECMAScript
  • ES5 ES6
  • 规范化脚本语言

4. 编程语言

编程语言(高级语言)→ 需要翻译成机器能理解的0 1
类型一:编译型:源码 → 编译器 → 机器语言 → 可执行文件(执行前全翻译完了)

  • 有跨平台移植问题
  • 速度快(银行系统、电商系统)C C#

类型二:解释型:源码 → 解释器 → 解释一行就执行一行

  • 有解释器就能运行,不需要根据不同的系统平台进行移植

脚本语言 → (有对应的)脚本引擎 → (必须通过)解释器(解释后立即执行)

  • JavaScript 客户端脚本(F12检查源码能看到)
  • php 服务端脚本(php和js代码,f12是看不到php源码的部分)

ECMAScript
DOM - document object model W3C规范
BOM - browser object model 没有规范

大部分js代码通过外部引入的方式

// html代码块中
<body><script type="text/javascript" src="js/index.js">document.write('只执行引入的js代码')</script>
</body>

5. 变量

  1. 单一声明方式: 一个var声明多个变量
  2. 运算优先级高于赋值 var z = x + y (先做加再赋值)
    在这里插入图片描述

1. 命名规范:

  1. 不能以数字开头
  2. 可以以字母 _ $开头
  3. 可以含字母 _ $``数字
  4. 不能使用关键字、保留字
  5. 语义化、结构化 js_header J_header
  6. 变量名小驼峰myEnglishName

2. JS的值

2.1 原始值

  1. 原始值 → 基本类型:Number String Boolean undefined null(最后两个,只有一个值)
  2. JS根据值判断数据类型(弱类型语言)
  3. 动态语言 → 脚本语言 → 解释型语言 → 弱类型语言
  4. 静态语言 → 编译型语言 → 强类型语言
  5. 除了null,其余原始值可以通过typeof得到类型(typeof null → ‘object’)
  6. 当函数无明确返回值时,返回的也是值 “undefined”
  7. 值 undefined 实际上是从值 null 派生来的,因此 ECMAScript 把它们定义为相等的。(null == undefined true)
  8. 尽管所有整数都可以表示为八进制或十六进制的字面量,但所有数学运算返回的都是十进制结果。
  9. 与无穷大一样,NaN 也不能用于算术计算。NaN 的另一个奇特之处在于,它与自身不相等
// 数字类型没有length属性
1.length // Uncaught SyntaxError: Invalid or unexpected token
  • 原始值没有属性,而值为数字类型的变量,可以调用方法,中间经过了基本包装类的处理
// 值 undefined 并不同于未定义的值。但是,typeof 运算符并不真正区分这两种值
var oTemp;alert(typeof oTemp);  //输出 "undefined"
alert(typeof oTemp2);  //输出 "undefined"// 如果对 oTemp2 使用除 typeof 之外的其他运算符的话,会引起错误,因为其他运算符只能用于已声明的变量上。
var a = 3
var b = a
a = 1
// 原来a占据的1008空间还原,但是数据没有删除
// 原始数据类型:数据不可改

在这里插入图片描述

var arr1 = [1,2,3,4,5]
var arr2 = arr1

在这里插入图片描述

// 重新赋值arr1 原来1005空间释放,数据还在
arr1 = [1,2]

在这里插入图片描述

ECMAScript 的字符字面量

在这里插入图片描述

2.2 引用值

  1. object array function date RegExp
    正则 Regular Expression

参考链接
网景百科
JS引擎
chrome
v8引擎
SUN公司
Oracle
W3C ECMAScript
ECMAScript原始类型

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251226.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Usaco2010 Nov]Visiting Cows

题目描述 经过了几周的辛苦工作,贝茜终于迎来了一个假期.作为奶牛群中最会社交的牛,她希望去拜访N(1<N<50000)个朋友.这些朋友被标号为1..N.这些奶牛有一个不同寻常的交通系统,里面有N-1条路,每条路连接了一对编号为C1和C2的奶牛(1 < C1 < N; 1 < C2 < N; C1…

ES5-2 语法、规范、错误、运算符、判断分支、注释

1. 错误 MDN错误列表 Uncaught SyntaxError: Unexpected token ) // 语法错误 Uncaught ReferenceError: a is not defined // 引用错误等类型 Uncaught TypeError: Cannot read property toString of null出现一个语法错误&#xff0c;则一行代码都不会执行&#xff08;检查…

unity深度查找某个子物体和遍历所有子物体方法

本文总结一下关于unity的查找子物体的方法 首先说明一下这里将讲三种查找子物体方法&#xff1a; 查找固定路径的某一个子物体的方法、通过名字深度查找某个子物体的方法、查找父物体下所有子物体的方法。 第一:查找固定路径的某一个子物体的方法 对于已知的路径可以直接用go.t…

javascript --- JSON字符串化

工具函数JSON.stringify()将JSON对象序列化为字符串时也用到了ToString. 看下面的代码: console.log(JSON.stringify(42)); console.log(JSON.stringify("42")); console.log(JSON.stringify(null)); console.log(JSON.stringify(true));所有安全的JSON值都可以使用…

ES5-3 循环、引用值初始、显示及隐式类型转换

1. 循环 for循环的三个参数abc&#xff0c;a只执行一次&#xff0c;c在每次循环后执行 // 打印0-100的质数 1不是质数 var list [2] for (var i 3; i < 100; i i 2) {var flag falsefor (var j 0; j < list.length; j) {var cur list[j]if (i % cur 0 &…

13 代码分割之import静动态导入

前端首屏优化方案之一 项目构建时会整体打包成一个bundle的JS文件&#xff0c;而有的代码、模块是加载时不需要的&#xff0c;需要分割出来单独形成一个文件块chunk&#xff08;不会打包在main里&#xff09;&#xff0c;让模块懒加载&#xff08;想加载时才加载&#xff09;&a…

2018.01.01(数字三角形,最长上升子序列等)

2017.12.24 简单的动态规划 1.数字三角形(算法引入) 题目描述&#xff1a;下图所示是一个数字三角形&#xff0c;其中三角形中的数值为正整数&#xff0c;现规定从最顶层往下走到最底层&#xff0c;每一步可沿左斜线向下或右斜线向下走。设三角形有n层&#xff0c;编程计算出从…

Mac iOS 允许从任何来源下载应用并打开

一个快捷的小知识点&#xff0c;mark&#xff01; 允许从任何来源下载应用并打开&#xff0c;不用手动去允许&#xff0c;更加简洁&#xff01; 只需一行命令 sudo spctl --master-disable 1.正常情况下&#xff0c;打开偏好设置&#xff0c;选择安全性与隐私&#xff0c;界面是…

ES5-4 函数基础与种类、形实参及映射、变量类型

模块编程原则&#xff1a;高内聚&#xff0c;低耦合&#xff08;重复部分少&#xff09;&#xff0c;让一个模块有强的功能性、高的独立性 → 单一责任制&#xff0c;用函数进行解耦合。 1. 函数命名规则 不能以数字开头可以以字母_$开头包含数字小驼峰命名法 函数声明一定有…

ES5-5 参数默认值、递归、预编译、暗示全局变量

1. 参数默认值 默认是undefined形参可以有默认值&#xff0c;形参、实参哪个有值取哪个ES6&#xff0c;默认值属于ES6的内容&#xff0c;打印出的是符合人性化的结果形参有默认值&#xff0c;形参、实参无法统一、无论实参传入有值还是undefined&#xff08;代码表现&#xff…

ES5-6 作用域、作用域链、预编译、闭包基础

1. 作用域 上一级在执行时&#xff0c;内部函数被定义&#xff0c;内部函数便生成作用域和作用域链&#xff08;拿上一级的环境&#xff09;&#xff0c;内部函数执行前生成自己的AO&#xff0c;并排在头部函数执行结束时&#xff0c;AO被销毁&#xff08;回到被定义时的状态&…

electron 项目的搭建方式,借助 node 和 npm

1&#xff0c;首先确定安装了 node 和 npm 2&#xff0c;创建一个文件夹&#xff0c;如 aa 3&#xff0c;CMD 命令进入到 aa&#xff0c;用 npm 命令初始化一个项目 4&#xff0c; npm -init 根据提示完成配置 5&#xff0c;安装 electron > npm i -D electronlatest, 这一…

ES5-7 立即执行函数、闭包深入、逗号运算符

1. 立即执行函数 定义在全局的函数只有关闭浏览器或者退出程序才会释放IIFE: Immediately-Invoked Function Expression解决页面加载自动执行&#xff0c;执行完成后立即释放&#xff08;避免了只会执行一次的内容一直存在于全局&#xff09;IIFE用匿名函数或者函数声明&#…

redis安装(linux)

一、redis安装步骤 1、yum install gcc 如果你机器已经安装了编译环境请忽略&#xff0c;否则在使用make编译源码时会报错。 报错信息&#xff1a;make: *** [adlist.o] 2、使用wget命令下载包  wget http://download.redis.io/releases/redis-4.0.6.tar.gz 3、解压tar包 tar…

ES5-8 闭包高级、对象、构造函数、实例化

1. 对象 对象内定义的函数一般称之为方法&#xff0c;在外部的函数声明称为函数对象删除属性使用delete 关键字 var obj {a: 1,b: string } console.log(obj, obj) // {a: 1, b: "string"} delete obj.b console.log(obj, obj) // {a: 1}在对象里&#xff0c;this…

es6 --- 使用生成器交替执行

考虑以下场景: var a 1; var b 2;function foo(){a;b b * a;a b 3; }function bar(){b--;a 8 b;b a * 2; }foo(); bar(); console.log(a, b); // 11 22bar(); foo(); console.log(a, b); // 183 180对于上面的两个函数foo和bar,它们中的任何一个,一旦开始了就会…

ES5-9 【utils】构造函数及实例化原理、包装类

1. 构造函数 调用构造函数实际会经历4步 1 创建一个新对象 2 将构造函数的作用域赋值给对象&#xff08;因此this就指向了这个对象&#xff09; 3 执行构造函数中的代码&#xff08;为这个新对象添加属性&#xff09; 4 返回新对象 在构造函数内部&#xff0c;this指向构造函数…

Mysql5.7.20使用group by查询(select *)时出现错误--修改sql mode

使用select * from 表 group by 字段 时报错错误信息说明&#xff1a; 1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column haha_db.staff.id which is not    functionally dependent on columns in GROUP BY clause; this…

ES5-10 原型、原型链、闭包立即执行函数、插件开发

重学第六章 1. 原型 实例内属性和原型上属性重名时&#xff08;屏蔽&#xff09; function Test(name) {this.name name } Test.prototype.name hhh let tObj new Test(yyy) console.log(tObj.name) // yyy tObj.name null console.log(tObj.name) // null delete tObj.…

性能优化杂记

webpack 开发、生产环境配置不同的webpack配置文件 生产环境删除devServer&#xff08;不需要启webpack devServer&#xff09; 告诉webpack&#xff0c;生产、开发分别要对应哪个配置文件 开发环境下也能看到打包的结果 npm run dev:build npm run dev 只会把打包生产…