来了来了,又来了!历史又来了!!!每门新语言的学习不都是以历史开始嘛!(说的你好像学了很多似的……)
其实今天不是很想记笔记啦,今天看了些JavaScript最基础的语法,看的是《DOM编程艺术》这本书,视频才看了一点点,有小伙伴问我看的什么视频,好吧,楼楼太穷,买不起视频,上不起培训机构,但我个人觉得51CTO的视频还是挺好的(靠!我真的不是做广告的……希望51CTO内部的大神们看到了适当支付几毛钱的宣传费喔……)。
因为书的内容比较浅显(啊,不要喷我,个人意见,言论自由,确实没有往深里去说啊),再加上已经学习过VB(什么鬼?这你也敢说??)、C++、Java,所以这刚开始看起来应该还是比较快和轻松的。(What are you 弄啥嘞?这你也敢bb?)(为什么不敢呢?嗯,这个,学过和学会和学好是完全不同的概念好嘛!!!那我只是说学过,,,仅仅是学过,学得太垃圾,说出来据说会掉粉……没关系,掉吧,反正我也当不了网红/(ㄒoㄒ)/~~但我有一个志向,我要当网红她妈~~~)
好了,笔记要开始了。
什么是JavaScript?
JavaScript是一种具有面向对象(OOP)能力的,解释型的程序设计语言。
解释型:直接读它的代码,而不是像java等需要经过编译器编译成.class文件后,执行.class文件。
它是基于对象和事件驱动并具有相对安全性的客户端()脚本语言。
事件驱动:比如点击按钮,选中文本等的操作,触发一些事件。(艾玛,我就这么理解的)
相对安全:删除文件文件夹等诸如此类的相对恶意的操作是没有的。
客户端:并不在服务器上执行,而是打开一个网站他的网页存放在本地临时空间上才执行JavaScript代码,所以它是客户端的语言。服务器端就不是本地的,是远程的。
脚本语言:不像java需要jdk环境一样需要特殊的环境,只需要有浏览器即可。
JavaScript的特点
松散性:变量不需要明确指定一个类型。
对象属性:JavaScript中的对象把属性名映射为任意的属性值。像哈希表和关联数组。
关联数组:填充数组时为每个元素明确的给出下标,而这种下标不仅仅局限于数字,也可以是字符串,例如:arr[“name”]=“Kity”,arr[“age”]=23。
继承机制:基于原型。(不懂……学到后面应该会懂吧呵呵呵……据我所听说,还有什么原型链,应该跟这个有关系。今天的笔记太没营养了,我嫌弃自己!)
JavaScript核心
ECMAScript(语法部分)+DOM(文档对象模型)+BOM(浏览器对象模型)
ECMAScript:与浏览器没有依赖关系,定义的是语言的基础,组成部分有:语法,类型,语句,关键字,保留字,操作符,对象等。
DOM:Document Object Model 文档对象模型。针对XML但是经过扩展用于HTML的API(Application Programming Interface)应用程序编程接口。W3C对DOM的定义是“一个与系统平台和编程语言无关的接口,程序和脚本可以通过这个接口动态的访问和修改文档的内容、结构和样式”。
BOM:Browser Object Model 浏览器对象模型。使用BOM可以控制浏览器显示页面以外的部分。
<script></script>标签放置的位置
有三种放置方法:
1.放在<head>标签中,将脚本直接写在<script type="text/javascript">标签里面。
2.放在<head>标签中,将脚本写在js文件中,通过<script type="text/javascript">标签的src属性引入。
3.引入外部js文件,<script type="text/javascript">标签放在html文档的最后,</body>标签之前,这样能使浏览器更快的加载页面。
引入js文件的方法,优点是:可维护性高,可缓存(加载一次,无需再加载),方便扩展。
浏览器使用的渲染引擎
基于Webkit:Safari、Chrome
基于Gecko:FireFox
基于Trident:IE
基于Presto:Opera
还有很多不同种类的页面渲染引擎。
关于JavaScript的一些基础语法
允许直接对变量赋值而无需事先声明。
变量名和其他语法元素的名字区分大小写。
变量名中不能包含空格或者标签符号($符号除外),允许包含字母、数字、下划线和美元符号,但第一个字符不能是数字。
强类型:必须明确类型声明的语言称为强类型语言。
弱类型:不需要进行类型声明的语言称为弱类型语言,如JavaScript。
反斜线对字符进行转义。如:var mood = ‘don\‘t ask’;
数组用Array关键字声明。声明方式有以下几种:
1.var arr = Array(4); 或者不给出元素个数,而后利用下标进行数组的填充。如:arr[0] = 123;
2.var arr = Array(123,4,"abs","http");
3.var arr = [123,4,"abs","http"];
关联数组:填充数组时为每个元素明确的给出下标,但是这个下标不仅仅可以是数字,也可以是字符串。如:arr["name"] = "Candy";
对象的创建方法有两种:
1.var lennon = Object();
lennon.name = "Candy";
lennon.year = 1993;
lennon.sex = "female";
2.var lennon = {name:"Candy",year:1993,sex:"female"};
“==” 相等操作符。相等操作符认为空字符串与false的含义相同,所以严格比较相等时可以使用“===”。同理,严格比较不等时使用“!==”。
var关键字与变量的作用域:如果函数中使用了var,那么这个变量是局部变量,只存在于这个函数中;如果没有使用var,那么这个变量是一个全局变量,如果脚本里已经存在一个与之同名的全局变量,这个函数就会改变那个全局变量的值。在定义一个函数时,一定要把它内部的变量都声明为局部变量,这样就能避免任何形式的二义性隐患。
对象有三类:
用户定义对象:程序媛自己定义的对象。
内建对象:JavaScript预先定义的一系列对象,如:Math(Math.round()方法可以把十进制数舍入为一个与之最接近的整数)、Array、Date(用来存储和检索与特定日期和时间有关的信息)。
宿主对象:有浏览器提供的预定义对象,如:Form、Image、Element、document(能用来获取网页上的任何一个元素的信息)。
全是概念!再见~~~