01_JavaScript简介
js用途
前端三层
结构层 HTML 从主义角度描述页面的结构
样式层 CSS 从审美的角度装饰页面
行为层 JS 从交互角度提升体验 HTML 里面的 b(加粗)/i(倾斜)/u(下划线)等标签由于严重影响了这三层关系,在严格版不被推荐使用。
为什么要分为三层?使页面像人类一样,有分工,利于维护。
js用来制作web页面的交互效果,提升用户体验。 应用场景如:
轮播图(焦点图):图片左右切换。
选项卡:点击某条目出现与之相应的内容。
表单验证(ajax):
QQ浏览器的欢迎界面。 浏览器 审查 setitings general 下有个 disable javascript 可以禁用 js 。
ajax:
禁用后打开淘宝页面,下拉时不会再出现更多新的商品内容,因为他们是使用 ajax 动态加载的。
这样做可以减轻服务器压力,减少流量。当用户不需要更多内容的时候我们就不必要在页面上传输这些内容。
用户需要时再加载。
这样的技术也叫懒加载。
js在当今如果离开他那么网页将不能正常使用,比如商品无法继续加载。
js的诞生
1995年 Netscape (网景)公司的一民员工 Brendan Eich (布兰登)开发的。
1996年 首次应用在 netscape 2 浏览器上。
js的名字 当时的不叫 JavaScript ,而叫 LiveScript (活力脚本),但当时 java 语言很流行,网景公司也把名字改得像 java 一样,以增名气。 几个月后 Microsoft(微软) 随着 ie3 推出了与js基本兼容的语言 JScript。
再几个月后 Netscape 把 js 提交到 Ecma Intermational (一个欧洲标准化组织),这个组织在
1997年 发布了 ECMAScript标准第一版。
1999年 以第三版形式更新,第四版由于委员会意见不合没有推出。
2009年 发布了第五版。
2015年 6月发布第六版。
js之父——布兰登
js是布兰登在网景公司开发的,布兰登被称为js之父。
布兰登后来从网景转向火狐。本来在火狐是做CEO的,但由于他比较传统,反对公司的一些“开放”文化,没过多久就从CEO(首席执行官)降至CDO(开发总监)。
js从丑小鸭到金凤凰
2003年
广告:页面上的漂浮广告,弹窗广告。所以当时浏览器就推出一个功能,禁用广告,其实也就是禁用js。
特效:比如鼠标后面跟随着星星。当时的工程师都觉得js不用学习,各种特效使用“效果合集”一套就可以了,没有人琢磨语言特性。
2004年
谷歌首次使用 ajax ,比如谷歌推荐google suggest,搜索感应,特别能提高用户体验。
js从此被重视。很多人开始学习js。当时问世了两本js巨作《犀利书》、《高级程序设置》。
2007年
三层分离,iphone发布,人们开始注重用户体验。大家发现了js是web页面中制作交互效果的唯一语言(微软的JScript和VBscript都被市场排斥),js被提到了相应高的一个地位。招聘信息开始出现独立的“js工程师”职位,之前都是后台工程师稍微写写js。
大家都在拼js的用户体验,如查看酒店地址,酒店的地图相应展现。
2008年
chrome 浏览器发布,v8引擎加快了js的解析。之前的浏览器解析js卡顿。
2009年
jQuery 变得流行,解决了浏览器兼容问题。制作页面效果变得简单。越来越多的初学者愿意学习js。
2010年
cnavas 画布技术得到众多浏览器支持。可以用canvas替代flash,并能制作小游戏,比如偷菜、切水果。
2011年
node.js得到应用,即让js运行在服务器上。node.js是单线程非阻塞应用。能让企业用最小的成本实现后台网站。
2012年
html5+css3的流行,也带火了js。没有js,html5+css3也做不了多大的炫酷效果。
2013年
hybrid app 模式开始流行。即做手机app时,老板们发现要雇佣三队人马,iso、安卓、windows phone。花三份工资,产品还不好迭代。这时人们发明了用网页技术开发手机app的技术,叫 web app。 即hybrid app,混合app。同时结合web技术和原生开发技术,省钱,好迭代。
2015年
ecma6 发布,也叫 ecma2015 。改变较大,把语言特性做了颠覆性的增强。
js与其他语言及学习方法
好学的地方
界面效果,不像c语言。
语法来源于c和java。
是弱变量类型的语言。
运行在宿主环境中,不用关心内存,垃圾回收。
难学的地方
兼容性问题。 不怕造轮子,多写几便。
花式写法很多,抽象。 从简单入手,细细品味代码。
太多细节。 写好笔记,做好实验。
学习方法
多“品”程序,多思考内在逻辑,读懂每一行代码。
js机械重复性的劳动几乎为0,基本都是创造性的劳动(HTML、CSS基本都是重复的)。
永远不要背程序,每一个程序都必须自己会写。
js学习路线
语言核心
DOM、BOM、页面特效
jQuery
面向对象
组件开发
框架原理
PHP
Ajax
HTML5、CSS3
canvas
node.js
01_JavaScript简介的更多相关文章
- ASP.NET Core 1.1 简介
ASP.NET Core 1.1 于2016年11月16日发布.这个版本包括许多伟大的新功能以及许多错误修复和一般的增强.这个版本包含了多个新的中间件组件.针对Windows的WebListener服 ...
- MVVM模式和在WPF中的实现(一)MVVM模式简介
MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...
- Cassandra简介
在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了一种非常流行的图形数据库Neo4J的使用方法.而在本文中,我们将对另外一种类型的NoSQL数据库——Cassandra进行简单地介 ...
- REST简介
一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式.”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则. ...
- Microservice架构模式简介
在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Mic ...
- const,static,extern 简介
const,static,extern 简介 一.const与宏的区别: const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量. 执行时刻:宏是预编 ...
- HTTPS简介
一.简单总结 1.HTTPS概念总结 HTTPS 就是对HTTP进行了TLS或SSL加密. 应用层的HTTP协议通过传输层的TCP协议来传输,HTTPS 在 HTTP和 TCP中间加了一层TLS/SS ...
- 【Machine Learning】机器学习及其基础概念简介
机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...
- Cesium简介以及离线部署运行
Cesium简介 cesium是国外一个基于JavaScript编写的使用WebGL的地图引擎,一款开源3DGIS的js库.cesium支持3D,2D,2.5D形式的地图展示,可以自行绘制图形,高亮区 ...
随机推荐
- Java NIO教程 Selector
这次我们开讲非阻塞I/O中的Selector,它需要配合非阻塞的TCP和UDP来使用.首先我们先简单讲一下TCP和UDP的非阻塞通道. 非阻塞I/O通道 在上代码前我们先讲解一些最基本的知识.TCP和 ...
- SCI写作经验交流,别人的经验借鉴下,很有用的!
http://www.dxy.cn/bbs/topic/27127771 语言是非英语国家论文的最大障碍.首先是时态和语态:在前言和讨论里,描述该研究的过去历史和现状时,要使用相应的时态:过去就使用过 ...
- fastjson基本使用 (待大量完善)
参考: http://blog.csdn.net/wx_962464/article/details/37612861 maven库下载 fastjson基本使用 import java.util.A ...
- xcode archive 一直是灰色的
把配置选择为device才能选build and archive的,模拟器的肯定不能build and anchive
- 使用dynamic动态设置属性值与反射设置属性值性能对比
static void Main(string[] args) { int times = 1000000; string value = "Dynamic VS Reflection&qu ...
- 【随笔】内存 & I/O检测相关
缺页中断 缺页中断属于内部中断,也就是异常.细分的话属于异常中的故障. 在执行一条指令时,如果发现他要访问的页没有在内存中(存在位为0),那么停止该指令的执行,并产生一个页不存在异常,对应的故障处理程 ...
- 『BASH』——文件权限批量恢复脚本——「Permission Revovery」
一.恢复指定程序包所有文件的权限: #!/bin/bash #Assume that you have mounted a correct orignal-system on /mnt read -p ...
- return和exit函数的区别
在上Linux课的时候,老师提到一句,调用vfork产生的子进程就是为了使用exec族函数来执行其他的代码逻辑. 在子进程退出的时候有两种方式,exit和exec族函数,不能使用return,为什么不 ...
- Xcode升级更新后,恢复cocoapods以及插件的方法
今天将手机系统更新到iOS9.3了,在Xcode7.1上做真机调试,提示找不到适合的SDK,才知道必须要升级Xcode才行,于是升级Xcode到7.3. 升级之后遇到很多麻烦,cocoapods没有了 ...
- maven打包时使用的pom配置
<build> <plugins> <!-- compiler插件, 设定JDK版本 --> <plugin> <groupId>org.a ...