一个页面分红三个部分,结构,样式,行为。javascript
HTML表明了页面的结构(骨架),CSS表明了页面的样式(皮肤),JavaScript表明了页面的行为(这种行为是被动的)。主动的行为须要一个大脑,后端做为咱们的大脑替咱们分析执行数据,执行行为,咱们和大脑之间的联系AJAX(中枢神经)。java
1.JavaScript是什么,它能作什么?编程
对页面进行渲染,让页面有行为。让页面动起来;后端
JavaScript简史浏览器
JavaScript在设计之初只是为了作表单验证的。可是现现在,JavaScript已经成为了一门功能全面的变成语言,已是WEB中不可或缺的一部分,现在的JavaScript是一门既简单又复杂的语言,说它简单是由于学会它,几乎只要一个小时就能够了。可是若是你想要真正掌握它,须要几年的时间。ide
JavaScript发展firefox
NetScape公司在1995年着手开发一种名为liveScript的脚本语言, 为了营销目的搭上当时媒体热炒的Java顺风车,临时改名liveScript为JavaScript。其实JavaScript和Java没有一点关系。JavaScript1.0得到巨大成功。设计
NetScape公司趁热打铁继续发布JavaScript1.1版本,使得Web得到更高的关注,同时奠基了本身在浏览器界的霸主地位。3d
若是事情一直这样下去那么NetScape可能依旧使咱们现代浏览器的霸主,但是在1996年互联网巨头微软公司进入浏览器领域,推出JScript,和NetScape公司开始争夺霸主地位。code
最让人担忧的问题也所以出现了,当时的JavaScript和JScript是彻底不一样的两个版本,这门语言没有一个标准存在,业内的担忧(吐槽)日益加重。终于,多方联合共同制定了一个标准,这个标准也就是ECMAScrip,ECMAScript做为各自JavaScript实现的基础。虽然制定标准只花费了几个月,可是这几个月却对将来20年的JavaScript发展起到了不可或缺的做用。
浏览器的发展经历了无数的坎坷,各个浏览器发现这块巨大的蛋糕后谁都不肯放弃,因而激烈的厮杀开始了。
第一次浏览器大战:
原始时期,微软发布了IE浏览器,和网景netSpace navigator大打出手,最后网景失败,将公司卖给AOL,核心团队所有离职,第一回合,微软获胜,netSpace昔日霸主陨落。
可是NetScape并无放弃,在1998年公开源码并从新命名为 Mozilla,并重写所有程序,在2002年发布了第一个浏览器版本,firefox登场。在2004年已经开始叫板IE浏览器,iE推出IE7与之抗衡,拉开了第二次浏览器大战的序幕。
第二次浏览器大战:
第二次浏览器大战再也不是IE和FF的两家之争,在现代浏览器群雄并起,同时挪威的 Opera ,几乎全部的智能手机配备的都是这个浏览器,拥有全世界最快V8引擎的Chrom,以及苹果公司的Safari,所有加入浏览器争夺。至今战争还在进行,可是对于浏览器大战咱们看到的结果大可能是推动了浏览器的发展,为更好的用户体验作出了很是积极的贡献。
JavaScript的组成
ECMAScript 、BOM 、DOM;
ECMAScript:这是一个标准,它规定了语法、类型、语句、关键字、保留字、操做符、对象。(至关于法律 )
BOM(浏览器对象模型):能够访问浏览器窗口的的浏览器对象模型,对浏览器窗口进行操做。
DOM(文档对象模型):DOM把整个页面映射为一个多层节点结构。HTML页面组成都是某种类型 的节点,这些节点又包含着不一样类型的数据。
如何写JavaScript程序?
script标签使用
<script></script> src : 外联script 标签(当即调用,不能在该标签内写代码) <script> //在标签内书写内容 </script> <script src='javascript.js'>// 这里面不能写任何内容</script>
一切准备就绪,让咱们从Hello Word开始吧。
document.write的使用 >>>> HelloWord >>> 原样输出标签。 注释 (一份好的代码,要有三分之二的注释) 单行注释: // 要注释的内容。 多行注释:/* 注释的内容写在这里 */ 原样输出标签内容
若是我想在页面中打印出:<strong>标签怎么办?
若是按照正常的打印方式进行打印,毫无疑问,标签会被浏览器解析。当咱们要打印标签的时候要对对标签进行转义。
< 表明 < > 表明 > document.write('<strong>强大的</strong>'); 变量(别称)
他叫翠花,他是一只熊。
熊的底层是什么那? 熊皮、熊掌、熊骨...., 那咱们每次呼叫这只熊的时候都要叫她什么?有一张熊皮,500公斤熊肉,第三块小脚趾骨断过的,那个玩意?
不!咱们叫她翠花!这就是这只熊的别称!放在计算机里,这就是把这只熊塞入了一个叫作翠花的变量里。
怎么声明一个变量那?
关键字 var 变量名 a = '<strong>强壮的</strong>'
var 声明变量的底层原理:咱们所写的程序运行在内存中,当咱们使用关键字var 声明一个变量的时候,计算机会从内存中留出必定储存空间,为咱们存放不一样类型的内容。
分清左右两侧的意义:
JavaScript中的 ‘’=‘’ 和咱们数学中的 ‘’ = ‘’不同,在JavaScript中‘’=‘’的做用是赋值(取别称)。 var a = '<strong></strong>'; 这句话分红两个部分。 左值:在等号左侧,是变量名(同时被赋值) 右值 :在等号右侧,是存放进变量中的东西(给变量赋值)
变量的类型(由于存放进变量中的数据是放在内存中的,计算机只识别0,1,因此须要对不一样类型的数据进行转义,转义的结果会致使所需空间不一样,因此JavaScript中分红不少种数据类型,以便计算机储存时使用)
数字类型(number):1234567890 字符类型(string):'123456','字符串类型',.....(有单引号或者双引号) 未定义类型(undefined):这是一种特殊类型,当变量被声明可是没有被赋值的时候,那么该变量的类型为undefined; 布尔值类型:true,false; 对象类型:object;
怎样直观地区分不一样的数据类型那?
一个关键字 typeof 变量使用小技巧: 声明一串变量:var a=1,b=2,c=3;(不推荐初学者使用这样的变量声明方式,由于这样的变量声明方式会致使注释不明确。) 变量命名规范:(匈牙利命名法:驼峰命名法)
为何要存在命名规范那?
你的代码并非只有你一我的看,变量既然是别称,那么别称就要有特殊的含义: 举个栗子:翠花,咱们能从这个名字中获得什么信息那? (这个名字的主人性别应该是女的,家中父母的一个美好愿景);
咱们从这些名字中可以读出不少的含义,是由于咱们的语言常识,一样,变量也有一套相似的标准,表明了各类各样的含义,这些含义以下:
第二个规则:
开头必须为字母或者$ 或 _
想要用break做为变量可不能够那?
关键字:
这些关键字用于执行特定操做等。按照规则,关键字也是语言保留的,不能用做标识符。
保留字:将来可能做为,标识符存在。
alert()方法
alert()使用 。 中止浏览器加载代码。
浏览器解析代码顺序。(从上到下,从左到右);
逻辑运算符:
var a=1,b=2; a+b=3 a - b=-1 a * b=2 a / b=0.5 a % b=1 var a='1', b='2'; a * b=2 ; a / b=0.5; a - b=-1; a + b =???
不一样:和咱们概念里的逻辑运算符不少都是不同的。
避免问题出现(一眼就看出来了):
让计算机告诉我:typeof 关键字;(数据类型的检测,意义在于确认是否可以被使用);
编程习惯:分号,虽然不加分号在JavaScript语法上没有问题,可是建议不要省略分号,加了分号以后能够用软件压缩。良好的变成习惯(JavaScript权威指南)上的理由。
浮点数:
你的电脑作着正确的二进制浮点运算,但问题是你输入的是十进制的数,电脑以二进制运算,这二者并非老是转化那么好的,有时候会获得正确的结果,但有时候就不那么幸运了;
alert(0.7+0.1); //输出0.7999999999999999
类型转换:alert(0.6+0.2); //输出0.8;
var a=3,b='10',c=true; alert(a+b); alert(b+c); alert(a+c);
运算结果好像并非咱们想要的:应该怎么办那?当咱们想作数学运算的时候,应该先对全部的数据类型进行统一(统一成数字格式),这时候咱们就该用到数据类型的转换。
数据类型转换方法: parseInt(); parseFloat();
咱们尝试一下数据转换的结果:
认识NaN:他是一种特殊的Number类型结果,表明意外转换的数字,NaN和任何东西都是不等的。
关于浮点数:Math.round()四舍五入取整浮点数。
赋值操做:(JavaScript中存在很是多的简写)
var a=1; a=a+1; a+=1; alert(a)
这些固然还包括 -= 、*=、/=、%=
这些赋值操做符的结果都是什么?
一个更简便的写法 a++ ; a - -;本文做者祈澈姑娘,转载请标明做者和文章出处,创做不易。