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

浏览器 内核
IE trident
Chrome webkit blink
Safari webkit
Firefox gecko
Opera presto

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原始类型

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

  1. ECMAScript-1【发展史-ECMA-编程语言-变量-JS值】

    一.发展史及浏览器内核 浏览器内核 火狐:gecko chrome:webkit blink IE:trident 欧鹏:presto blink safari:webkit      2.发展史 1 ...

  2. js中Object类型和Array类型的变量被赋值(复制)给其他变量后,修改被赋值(复制)的新变量的值,会影响原始变量的值,这是为什么呢?

    JavaScript中的Object和Array都是指针变量类型,例如我声明 let obj={a:1};let arr=[1,2,3]; 其中的obj和arr存放的仅仅是对应的对象和数组内容所存放的 ...

  3. 怎么在js中取java变量的值

    通过<%=java变量%>的方式赋值给js变量. 1.定义一个java变量 <%String a = "222";//定义一个string类型的java变量 %& ...

  4. Js代码执行 变量的值 运算 变量提升

    Js代码执行 Js代码执行前,浏览器会给他(js)一个全局环境,叫window(全局作用域).在window下浏览器找到所有的带var和function的关键字然后给他们分配内存地址.不管你赋值没赋值 ...

  5. 在Safari里也能像Chrome里一样,通过执行js修改变量的值,在debugger里立即生效

    在Safari里也能像Chrome里一样,通过执行js修改变量的值,在debugger里立即生效. 和Chrome里的network tab一样,Safari里通过network request一样能 ...

  6. 使用变量的值作为JS对象的属性名,从而获取其对应的值

    使用变量的值作为JS对象的属性名,从而获取其对应的值 <script>var object={"a":1111,"b":2222};var para ...

  7. linux获取java环境变量的值,linux获取java环境变量的值

    linux获取java环境变量的值 [2021-02-11 00:17:01]  简介: 服务器 这篇文章主要为大家展示了linux环境下怎么配置环境变量,内容简而易懂,希望大家可以学习一下,学习完之 ...

  8. php 实现两变量值对换,php两个变量的值交换的方法

    前几天写了一下JS脚本两个变量的值交换的方法,今天有空就写一写php中两个变量的值交换的几种方法,方法很简单大家可以参考一下! php两个变量的值交换的方法 方法1: 定义一个新的变量,用于在变量的值 ...

  9. js值的拷贝和值的引用_到达P值的底部:直观的解释

    js值的拷贝和值的引用 介绍 (Introduction) Welcome to this lesson on calculating p-values. 欢迎参加有关计算p值的课程. Before ...

  10. ES5和ES6中的变量声明提升

    ES5和ES6中的变量声明提升 Example1: a=2; var a; console.log( a ); //结果为2 Example2: console.log( a ); //结果是unde ...

最新文章

  1. subst将文件夹目录虚拟成虚拟磁盘
  2. 【转载】Python 深入浅出支持向量机(SVM)算法
  3. IIS6、7添加反向代理的步骤
  4. 【CSS古话今说】-- 01.神奇的CSS-BFC在实战中的应用
  5. python3.6.2下载教程_Windows下升级Python3.7.7后(原Python3.6.2版本)如何切换Python版本|python基础教程|python入门|python教程...
  6. PMP之项目风险管理---实施定性风险分析
  7. JMetro版本8.6.11和11.6.11已发布
  8. redis 学习(18)-- AOF
  9. 唐中印 项目管理实战专家简介
  10. (组合数学笔记)Pólya计数理论_Part.6_置换群的循环指数
  11. 阴阳师服务器维修拖延,阴阳师12月11日更新维护公告 阴阳师百闻牌联动开启
  12. axvspan函数--Matplotlib
  13. Python批量查询恶意地址信息
  14. ispe对计算机系统分类,ISPE制药工程指南-调试和确认(CQ)之系统分类
  15. java计算机毕业设计小小银动漫网站源代码+数据库+系统+lw文档
  16. 四阶龙格库塔方法求解一次常微分方程组
  17. FIDO android客户端认证
  18. Java银行柜员业务绩效考核系统(含源码+论文+答辩PPT等)
  19. MCS-51单片机总结——No4.存储之AT24C04A
  20. 一站式在线订货功能详解,B2B电子商务交易平台高效解决企业订单管理痛点

热门文章

  1. java命令_JAVA与模式之命令模式
  2. mysql 数据库 额外_Manager额外参数怎么学?mysql数据库学习
  3. closewait一直不释放_夏至太阳庆典 || 巨蟹座日蚀新月大释放蜡烛魔法仪式(寻找新的幸运儿)...
  4. estemplate 导入MySQL_[数据库]es~通过ElasticsearchTemplate进行聚合操作
  5. Unity SRP自定义渲染管线 -- 1.Custom Pipeline
  6. requestAnimationFram
  7. Android使用token维持登陆状态的方法
  8. 微信开放平台全网发布时,检测失败 —— C#
  9. Fiddler 域名过滤
  10. Climbing Stairs - Print Path