一、五大浏览器与其内核(记住)

ie浏览器 trident
Chrome浏览器 webkit --> blink
Safari浏览器 webkit
Firefox gecko
Opera presto

二、浏览器的发展历史

1. 1990年,蒂姆·博纳斯·李

蒂姆博纳斯李是一个分享超文本资讯的人,他开发了一款浏览器world wide web,随后移植到C,改名为libwww(真正意义上的第一个浏览器),随后一系列变迁改为nexus。

2. 1993年(重要的MOSICA浏览器)

美国伊利诺大学NCSA组织,其核心成员马克·安德森开发了一个MOSIAC浏览器。该浏览器可以显示图片。该款浏览器是真正意义上的图形化浏览器。

3. 1994年(Netscape浏览器)

这一年,马克·安德森和吉姆·克拉克成立了MOSIAC communication corporation公司,但是因为商标等问题(商标被转让给了spy glass),改名为Netscape communication corporation。也就是我们熟知的网景公司
随后的网景公司在MOSIAC的基础上开发了一款浏览器netscape navigator,在当时十分流行,一直流行了10年左右。

4. 1996年(极其重要的一年)

4.1 微软收购了spy glass公司,因为spy glass公司有MOSIAC的商标,当然就有MOSIAC的使用权。于是在MOSIAC的基础上开发出IE浏览器。Internet explorer 1.0版本。同年发布了IE3版本,并且发布了JScript脚本语言。由此可知,IE的内核其实MOSIAC内核的升级版。

4.2 网景公司Brendan eich基于Netscape navigator浏览器开发出livescript脚本语言。livescript就是JavaScript的前身。

4.3 Java火起来了,但是网景公司的livescript不温不火。于是网景公司和SUN公司(Java的公司)就商量一起合作推广和宣传产品。于是乎,livescript就更名为JavaScript了。

5. 2001年

5.1 IE6发布,同时将JS引擎诞生,从渲染引擎中剥离出来。
5.2 xp系统诞生。

6. 2003年

Mozilla公司开发了Firefox浏览器,其实就是Netscape navigator搬过来的。(2002年,Netscape开源了)

7. 2008年(极其重要的一年)

Google基于WEBKIT、BLINK、GEARS内核,开发出了Chrome浏览器。同时诞生了V8引擎。(JS引擎)。
V8引擎的厉害之处:
1、直接翻译机器码
2、独立于浏览器运行

8. 2009年

甲骨文公司收购了SUN公司,JS的所有权归甲骨文所有。

三、ECMA(European Computer Manufactures Association,欧洲计算机制造联合会)

  1. 该组织做什么?
    评估、开发、认可电信、计算机标准
  2. ECMA - 262是脚本语言的规范,也称ECMAScript
    我们常见的ES5、ES6也都是规范。

四、编程语言

  1. 解释型语言
    源码 --> 解释器 --> 解释一行就执行一行
  2. 编译型语言
    源码 --> 编译器 --> 机器语言 --> 可执行文件
  3. 脚本语言(解释型语言)
    源码 --> 脚本引擎 --> 解释器
    前端脚本语言:JavaScript(客户端脚本)
    后端脚本语言:php(服务器端脚本)

五、关于其他的前端脚本语言

  1. 前端主流的脚本语言是JavaScript,之前其实还有JScript、VBScript。JScript和VBScript都是微软开发的脚本语言。因为脚本语言需要一个统一的规范,所以就共同遵守ECMA的规范。
  2. 但是JScript的语法基本上都是照抄JavaScript的,所以JScript和JavaScript基本一样。现在JScript已经放弃了。
  3. VBScript之前有用来做桌面程序。也基本没什么人用了。
  4. actionscript,用来开发Adobe flash player的。

六、JavaScript三大块

ECMAScript、DOM(W3C规范)、BOM(没有规范)

七、JavaScript单线程模拟多线程(轮转时间片)

JS引擎是单线程的,这个毫无疑问,那么为什么我们看上去好像能同时执行多个任务呢?因为JS引擎使用了轮转时间片来模拟多线程。
轮转时间片:短时间之内轮流执行多个任务的片段。
1、任务1、任务2、任务3…
2、切分这些任务
3、随机排列这些任务片段,组成队列
4、按照这个队列顺序将这些任务片段送进去JS进程
5、JS进程执行一个又一个的任务片段
因为短时间内执行了很多个任务片段,我们时间很短,我们是看不见卡顿的。

八、JavaScript基础

一个编程语言必须要有变量、数据结构、函数、运算能力等方面。HTML、CSS都没有这些,所以他们是标记性语言。

1.变量

1、普通声明方式:var a = 3;

说明:上面这条语句其实有两个步骤,声明变量a,变量赋值3。其实就像我们买房子,声明变量的时候就是向系统申请了一片存储空间,并且命名为a。赋值就是人住进去了。

2、单一声明方式:一个var声明多个变量。多个变量间用逗号分隔。

var x = 1,
y = 2;

3、命名规范

1、不能以数字开头,可以字母_KaTeX parse error: Expected group after '_' at position 17: …头 2、中间可以使用数组、字母_̲
3、关键字、保留字不能声明为变量的名字
4、注意要语义化、结构化
5、养成良好的规范,使用小驼峰命名法
6、不要使用拼音!很让人讨厌

2. JS的值

1、原始值(基本数据类型):

Number、String、Boolean、undefined、null
扩展一点:JavaScript是根据赋予的值自动来判断数据类型的,是一种动态语言、弱类型语言。
动态语言 -> 脚本语言 -> 解释型语言 -> 弱类型语言
静态语言 -> 编译型语言 -> 强类型语言

2、引用值:

Object、Array、Function、Date、RegExp

3. 原始值和引用值在内存中的存储方式

1、原始值是直接在栈内存中存值,比如var a = 123; 直接就会将栈内存中的某个地址空间放入123,并且声明为a。
2、在内存中的值是不能改变的。如果a被重新赋值,如a = 456,那么在栈内存中原理123的位置的声明a抹去,改回原来的地址序号。然后在其他的序号重新开辟一片空间来放456,并将该空间声明为a。
3、引用数据类型则不一样。引用数据存储在堆内存中。然后在栈的某个地址声明arr1,然后值为arr1的值在堆内存中的地址。
4、所以如果引用类型直接赋值,如var arr2 = arr1;那么是直接将arr1存放数据的堆内存空间地址直接复制一份放到arr2中。所以arr1改变值时,arr2同时也会被改变,因为他们指向同一个堆内存地址。
5、如果arr1 = [1, 2, 3],就是arr1被重新赋值了,那么原来的地址声明就会被抹去,然后开辟一个新的栈内存空间,存放[1, 2, 3] 在堆内存中的地址。

01-ECAM、发展史、JS值、编程语言、变量相关推荐

  1. js 判断变量是否有值返回bool_基础 |判断 JS 中的变量类型竟然可以如此简单

    原标题:基础 |判断 JS 中的变量类型竟然可以如此简单 嗨 这里是IMWEB 一个想为更多的前端人 享知识 助发展 觅福利 有情怀有情调的公众号 欢迎关注转发 让更多的前端技友一起学习发展~ 正文 ...

  2. 深入理解JS中的变量作用域

    在JS当中一个变量的作用域(scope)是程序中定义这个变量的区域.变量分为两类:全局(global)的和局部的.其中全局变量的作用域是全局性的,即在JavaScript代码中,它处处都有定义.而在函 ...

  3. JS 枚举型变量操作

    JS   枚举型变量操作(用于全局变量等) (2010-03-18 21:10:20) 转载 标签: js 分类: 程序语言 还有就是   in     运算符使用来判断对象是否包含有属性,你可以看一 ...

  4. ext如何将值存入变量_变量类型之值类型与引用类型

    前言 变量类型在我们日常开发中经常接触到,但是js中的变量类型与其他强类型语言不同,由于js是弱类型语言,因此他的变量拷贝在我们实际的日常开发中有很多需要注意的项.而半斤在最近的开发中遇到了很多匪夷所 ...

  5. js php 数据类型判断,【js基础】变量类型判断

    类型判断方法比较: 如果需要想详细了解,请看下文: 注:原封不动复制备份,防止删帖 在JavaScript中,有5种基本数据类型和1种复杂数据类型,基本数据类型有:Undefined, Null, B ...

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

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

  7. Javascript开发技巧(JS中的变量、运算符、分支结构、循环结构)

    一.Js简介和入门 继续跟进JS开发的相关教程. <!-- [使用JS的三种方式] 1.HTML标签中内嵌JS(不提倡使用): 示例:<button οnclick="javas ...

  8. java处理表单变量_jsp处理表单及JS和JAVA变量互传

    1:超连接跳转 我们在超连接的时候,常常连接到一个jsp或者Action,比如: XXX 这样做会有一个问题:在test.jsp中,除你传递的param1和param2参数外,你用request.ge ...

  9. JQuery属性选择器(属性值是变量、多属性选择)

    结论: 1.属性值是变量时,$("div[属性 = "+变量+"]"):2.属性值是变量时,$(`div[属性 = ${变量}`):3.多属性选择器时,$(&q ...

  10. Java学习笔记01—Java概述、数据类型、变量、标识符、类型转换

    1. Java概述 1.1 Java语言发展史(了解) 语言:人与人交流沟通的表达方式 计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言 Java语言是美国Sun公司(Stanford Uni ...

最新文章

  1. Powershell管理系列(五)修改AD账号属性
  2. 简述 OAuth 2.0 的运作流程
  3. 成功网管员必备“硬件”素质
  4. shiro教程(4)-shiro与项目集成开发
  5. 解决alibaba-dubbo调用findFirstNonLoopbackHostInfo导致启动慢
  6. mysql七种join理论
  7. InfoQ宣布成立CNUT容器技术俱乐部 欲连接中国容器社区
  8. http sxyk.cdn_Discuz x3 开启cdn和https后链接修改教程
  9. 前端笔记-vue中使用router进行页面跳转及除掉url中的#
  10. Mac下安装MySQL
  11. 瑞幸咖啡退市成定局:董事长被要求辞职,新店却仍在扩张
  12. Spring Cloud与微服务学习总结(2)——Spring Cloud相较于Dubbo等RPC服务框架的优势
  13. Android系统源码分析--Process启动过程
  14. VisualStudioCode常用快捷键
  15. PHP 常用算法集锦
  16. paip.复制文件 文件操作 api的设计uapi java python php 最佳实践
  17. python清华大学出版社答案_Python机器学习及实践
  18. .net微信公众平台源码,微信营销平台源码(微网站,微商城,微营销,微会员)
  19. 微信小程序地图polygons自己标点,三个点以上连成面
  20. PDF如何编辑,怎么删除PDF页眉页脚

热门文章

  1. 【mmdetection】mmdetection安装详细步骤
  2. JavaWebDay7
  3. Java实现将文件(图片)上传到七牛云对象存储,并实现下载和删除功能
  4. Unity 导航系统Navigation
  5. 京东平台和商家的不同合作模式
  6. 2023届暑期实习华为面试手撕题
  7. 第5周编程题在线测试
  8. 计算机毕业设计Java智慧防疫上报系统小程序端(源码+系统+mysql数据库+Lw文档)
  9. Android:ButterKnife的简单使用
  10. RNA-Seq质控工具RseQC安装使用