js-day01

javascript发展过程

JavaScript 因为互联网而生,紧随着浏览器的出现而问世。回顾它的历史,就要从浏览器的历史讲起。
1990年,欧洲的Tim Berners-Lee在互联网基础上发明了万维网,可以在网页上浏览器网页文件。最早的网页只能在操作系统的终端里浏览,也就是只能用命名行的方式,网页在字符窗口里显示,非常的不方便。
1992年,NCSA开始开发一个独立的浏览器,叫做Mosaic。Mosaic:互联网历史上第一个获普遍使用和能够显示图片的网页浏览器
1994年,NCSA的一个程序员联合一家风险投资家,成立了Mosaic通信公司,不久改名为Netscape。这家公司在Mosaic的基础上开发了面向普通用户的新一代浏览器Netscape Navigator。
1994年12月,Navigator发布了1.0版,市场份额一举超过90%。
Netscape 公司很快发现,Navigator浏览器需要一种可以嵌入网页的脚本语言,用来控制浏览器行为。当时,网速很慢而且上网费很贵,有些操作不宜在服务器端完成。比如,如果用户忘记填写“用户名”,就点了“发送”按钮,到服务器再发现这一点就有点太晚了,最好能在用户发出数据之前,就告诉用户“请填写用户名”。这就需要在网页中嵌入小程序,让浏览器检查每一栏是否都填写了。
1995年5月,Brendan Eich只用了10天,就设计完成了这种语言的第一版。它是一个大杂烩,语法有多个来源:借鉴了C语言和java语言。 借鉴了python语言。Perl语言。
Netscape 公司的这种浏览器脚本语言,最初名字叫做 Mocha,1995年9月改为LiveScript。12月,Netscape公司与Sun公司(Java语言的发明者和所有者)达成协议,后者允许将这种语言叫做JavaScript。Netscape公司可以借助Java语言的声势,而Sun公司则将自己的影响力扩展到了浏览器。
1995年12月4日,Netscape 公司与 Sun 公司联合发布了 JavaScript 语言。当时的意图是将 JavaScript 作为 Java 的补充,用来操作网页。
1996年3月,Navigator 2.0 浏览器正式内置了 JavaScript 脚本语言。
1996年8月,微软模仿JavaScript开发了一种相近的语言,取名为JScript(JavaScript是Netscape的注册商标,微软不能用),首先内置于IE 3.0。Netscape公司面临丧失浏览器脚本语言的主导权的局面。
1996年11月,Netscape公司决定将JavaScript提交给国际标准化组织ECMA。希望JavaScript能够成为国际标准,以此抵抗微软。ECMA的39号技术委员会(Technical Committee 39)负责制定和审核这个标准,成员由业内的大公司派出的工程师组成,目前共25个人。该委员会定期开会,所有的邮件讨论和会议记录,都是公开的。
1997年7月,ECMA组织发布262号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript。这个版本就是ECMAScript 1.0版。之所以不叫JavaScript,一方面是由于商标的关系,Java是Sun公司的商标,根据一份授权协议,只有Netscape公司可以合法地使用JavaScript这个名字,且JavaScript已经被Netscape公司注册为商标,另一方面也是想体现这门语言的制定者是ECMA,不是Netscape,这样有利于保证这门语言的开放性和中立性。因此,ECMAScript和JavaScript的关系是,前者是后者的规格,后者是前者的一种实现。在日常场合,这两个词是可以互换的
ECMAScript只用来标准化JavaScript这种语言的基本语法结构,与部署环境相关的标准都由其他标准规定,比如DOM的标准就是由W3C组织(World Wide Web Consortium)制定的
1997年7月,ECMAScript 1.0发布。
1998年6月,ECMAScript 2.0版发布。
1999年12月,ECMAScript 3.0版发布,成为JavaScript的通行标准,得到了广泛支持。
2007年10月,ECMAScript 4.0版草案发布,对3.0版做了大幅升级,预计次年8月发布正式版本。草案发布后,由于4.0版的目标过于激进,各方对于是否通过这个标准,发生了严重分歧。以Yahoo、Microsoft、Google为首的大公司,反对JavaScript的大幅升级,主张小幅改动;以JavaScript创造者Brendan Eich为首的Mozilla公司,则坚持当前的草案。
2008年7月,由于对于下一个版本应该包括哪些功能,各方分歧太大,争论过于激进,ECMA开会决定,中止ECMAScript 4.0的开发(即废除了这个版本),将其中涉及现有功能改善的一小部分,发布为ECMAScript 3.1,而将其他激进的设想扩大范围,放入以后的版本,由于会议的气氛,该版本的项目代号起名为Harmony(和谐)。会后不久,ECMAScript 3.1就改名为ECMAScript 5。
2009年12月,ECMAScript 5.0版正式发布。
2015年6月,ECMAScript 6正式发布,并且更名为“ECMAScript 2015”。

1994年 Netscape公司推出免费版本浏览器 Netscape Navigator(网景浏览器1.0)
1995年微软公司发布 Internet Explorer1.0。
1995年网景公司为适应市场变化,需要开发一门专门在浏览器运行的脚本语言,这个任务交给了布兰登,为了应付公司安排的任务他只用10天时间就提交了工作,并将这门语言命内LiveScript
后来为了蹭sun公司java的热度与sun公司合作定将某时名为 javascript
1996年8月,微软模仿javaScript开发了一种相的语言,取名为 jScript,首先内置于E30
1997年7月,ECMA组织发布 DECMAScript1.0 版本
此后,明争暗斗不断,1998年6月, ECMAScript20版发布,1999年12月, ECMAScript3.0版发布;
2007年10月, ECMAScript4。版草案发布200生月中上 ECMAScript40的开发,并发布3.1版本会后不久, ECMAScript3.1就改名为 ECMAScript5
2011年月, ECMAScript1版发布,现在使用最为厂泛的版本版发布,现在使用最为广泛的版本
2015年6月, ECMAScript6正式发布,并且更名为 ECMAScript2015
随后,ECMA组织决定,每年发布一个升级版本,以年号来代替版本号,如: ECMAScript2016、 ECMAScript2017

五大浏览器内核

主流浏览器:有自己独立研发的内核:

1、IE浏览器内核:Trident内核,也是俗称的IE内核;

2、Chrome浏览器内核:统称为Chromium内核或Chrome内核,以前是Webkit内核,现在是Blink内核;

3、Firefox浏览器内核:Gecko内核,俗称Firefox内核;

4、Safari浏览器内核:Webkit内核;

5、Opera浏览器内核:最初是自己的Presto内核,后来加入谷歌大军,从Webkit又到了Blink内核;

ECMAScript

ECMA欧洲计算机联合制造会
ECMAScript是一套标准,定义了一套语言的标准,规定了基本的语法关键字,具体API的设计规范

javascript和HTML、CSS

HTML提供网页的结构
CSS用来样式排版、美化网页
javascript用来控制网页的内容,给网页增加更多动态的效果

javascript能做些什么?

    嵌入动态文本于HTML页面。
	对浏览器事件做出响应。
	读写HTML元素。
	在数据被提交到服务器之前验证数据。
	检测访客的浏览器信息。
	控制cookies,包括创建和修改等。 
	基于Node.js技术进行服务器端编程。

javascript都学哪些内容呢

   1. ECMAScript的核心语法部分很精准简,它只包含两部分:a、基本语法构造  b、标准库(就是一系列具有各种功能的对象比如Array、Date、Math等)
   2. 要想实现更复杂的操作和效果,都要依靠宿主环境提供的API。javascript的宿主环境有多种,最常见的环境还是浏览器,也有服务器环境

js语言学习的内容

javascript语言的特点

  • 特点

1)解释性

    JavaScript不同于一些编译性的程序语言,例如C、C++等,它是一种解释性的程序语言,它的源代码不需要经过编译,而直接在浏览器中运行时被解释。

(2)基于对象

    JavaScript是一种基于对象的语言。这意味着它能运用自己已经创建的对象。因此,许多功能可以来自于脚本环境中对象的方法与脚本的相互作用。

(3)事件驱动

    JavaScript可以直接对用户或客户输入做出响应,无须经过Web服务程序。它对用户的响应,是以事件驱动的方式进行的。所谓事件驱动,就是指在主页中执行了某种操作所产生的动作,此动作称为“事件”。比如按下鼠标、移动窗口、选择菜单等都可以视为事件。当事件发生后,可能会引起相应的事件响应。

(4)跨平台

    JavaScript依赖于浏览器本身,与操作环境无关,只要能运行浏览器的计算机,并支持JavaScript的浏览器就可正确执行。

(5)安全性

    JavaScript是一种安全性语言,它不允许访问本地的硬盘,并不能将数据存入到服务器上,不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互。这样可有效地防止数据的丢失。

javascript的组成

  • ECMAScript:

    ECMAScript 定义的只是这门语言的基础语法和规范

  • 文档对象模型(DOM)—对应Document对象

    文档对象模型(DOM)——对应Document对象;
    DOM 通过创建树来表示文档,从而使开发者对文档的内容和结构具有空前的控制力。
    用DOM API 可以轻松地删除、添加和替换节点(getElementById、childNodes、appendChild、 innerHTML)
    DOM把一份文档理解为一颗家谱树(节点树),分别为parent(父节点)、child(子节点)、sibling(兄弟节点)

DOM节点

  • 浏览器对象模型(BOM)—对应window对象

    它提供了很多对象,用于访问浏览器的功能;这些功能与任何网页内容无关;
    对浏览器窗口进行访问和操作。例如弹出新的浏览器窗口,移动、改变和关闭浏览器窗口,提供详细的网络浏览器信息(navigator object),详细的页面信息(location object),详细的用户屏幕分辨率的信息(screen object)等等

javascript的四种输出方式

  • 使用window.alert()输出警告框
  • 使用document.write()方法将内容写到html文档中
  • 使用innerHTML写入到HTML元素
  • 使用console.log()写入到浏览器的控制台

javascript的语法

  • JS引入方式、书写位置

  • 严格区分大小写

  • 标识符

  • 注释
    1. 单行注释: //注释的内容
    2. 多行注释: /要注释行内容/

  • 运算符


运算符解释符号示例
将两个数字相加,或拼接两个字符串。+6 + 9;"Hello " + “world!”;
减、乘、除这些运算符操作与基础算术一致。只是乘法写作星号,除法写作斜杠。-, *, /9 - 3;8 * 2;9 / 3;
赋值运算符为变量赋值(你之前已经见过这个符号了)=var myVariable = ‘李雷’;
等于测试两个值是否相等,并返回一个 true/false (布尔)值。===var myVariable = 3;
不等于和等于运算符相反,测试两个值是否不相等,并返回一个 true/false (布尔)值。!==var myVariable = 3;
取非返回逻辑相反的值,比如当前值为真,则返回 false。!原式为真,但经取非后值为 false:
  • 变量
    • 什么是变量

       变量是用于存储某种/某些数值的存储器。我们可以把变量看做一个盒子,
       为了区分盒子,可以用BOX1,BOX2等名称代表不同盒子,BOX1就是盒子的名字,
       也就是变量的名字。  
       当页面运行时,保留内存的标识,这个标识的值是可以改变的,供以后随时来调用,
      
    • javascript声明变量有三种方式
      1.使用var 关键词声明

      var 变量名=值 
      变量名必须符合javascript标识符要求,字符型和数值声明方式不一样,字符型的必须用 引号    
      如:
      var uname="王大拿";
      var uage=19;  //数值型的不需要用引号,可以进行算术运算
      

      2.不使用var

        uname="李辰伟"
        uage=18
      

      3.使用全局window对象的属性来定义变量

      window.变量名=值
      
    • 变量的命名
      1. 变量必须使用字母、下划线(_)或者美元符( ) 开 始 。 2. 然 后 可 以 使 用 任 意 多 个 英 文 字 母 、 数 字 、 下 划 线 ( ) 或 者 美 元 符 ( )开始。 2. 然后可以使用任意多个英文字母、数字、下划线(_)或者美元符( )2.使线()()组成。
      3. 不能使用JavaScript关键词与JavaScript保留字。
      4. 小驼峰命名法:除第一个单词之外,其他单词首字母大写(常用于变量)

    • 变量的注意事项

       1. 在JS中区分大小写,如变量mychar与myChar是不一样的,表示是两个变量。
       2. 变量虽然也可以不声明,直接使用,但不规范,需要先声明,后使用。
      
  • 数据类型

变量解释示例
String字符串var myVariable = ‘李雷’;
Number数字var myVariable = 10;
Boolean布尔var myVariable = true;
Array数组var myVariable = [1, ‘李雷’, ‘韩梅梅’, 10];
Object对象var myVariable = document.querySelector(‘h1’);
Undefined未定义var Str;
Null没有对象var myVariable =null;

基本数据类型转换

1.转换为数值型

var m="17a";
m=parseInt(m)
Int为整数    注意:NaN意思是不是数字
parseFloat()
number()

number() 将布尔类型 的false转为0 ,true 转为1 ,undefined转为NaN,null转为0
new Object()转为NaN,

2.转换为字符

	String(数字)转换为字符
	toString(数字) 转换对象

3.转换为布尔型

	Boolean(mix)

可以把 “” 0 NaN undefined 0转为false


当插入一段动态文本时,会自动显示其每个属性的当前值。当更新属性时,动态文本也将自动更新。
保存地图文档的日期
一系列数据驱动页面”中自动更新的每个页面的页码和名称

当用户单击按钮或者提交表单数据时,就发生一个鼠标单击(onclick)事件,需要浏览器做出处理,返回给用户一个结果。

在这里插入图片描述

可读就是只能打开看或者浏览,可写就是可以修改或者可以新建删除的意思
可读不可写就是你只要看的权限没有修改的权限

1、先加载和后加载的区别。
浏览器解析html是从上到下的。如果把javascript放在head里,则先被解析。需要用window.onload起到一个延迟加载的作用。JavaScript脚本写在body里面,也要看具体位置。一般都是写在了body标签的最后面。
2、javascript代码默认是同步执行的,不管是内嵌的还是外部的javascript代码,都会阻塞后续html代码的加载和渲染以及后续javascript的解析。
3、但如果你这有一个javascript文件比较大,而这一部分的功能比较独立,没有他也不会影响页面的显示效果,那就可以考虑把它放在body的最后,即/body之前,这样整个页面载入了,页面完全显示了才开始处理这部分javascript,当然,也可以loadjs 等异步加载方式进行异步加载,这样就不会阻塞其他html和javasscript了。
4、一般情况下最好是单独把javascript放在js文件里,通过head里的链接起来,css则是通过link。这样做的目的是为了让内容-样式-逻辑分离,以便以后能够更好地维护

编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的.
计算机不能直接理解高级语言,必须把高级语言翻译成机器语言才能执行高级语言编写的程序。
翻译的方式有两种:编译,解释 (两者只是翻译的时间不同)
解释型语言:不需要编译,程序在运行的时候才翻译成机器语言,执行一次翻译一次。
特点:
一. 效率低
每执行一次都要进行翻译。
二. 非独立性(依赖解释器)
三. 跨平台性好
编译型语言进行移植后要重新编译,相对而言解释型语言跨平台较容易。
同等条件下,编译型语言对系统的条件要求比较低,像开发操作系统,大型应用程序,数据库系统,则用编译型语言。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值