1.JavaScript:一种网页交互技术,直接嵌入到HTML中,由浏览器解释,不需要预编译。它与Java的区别在于:
1)Java的特点:封装、继承、多态
2)JavaScript的特点:脚本语言,没有编译器,逐行执行。是基于对象(内置了大量对象)的,但不支持严格的封装、继承、多态
---继承:JS没有继承的概念,但是有原型的概念,每个对象都有prototype属性,用来指定该对象的原型,类似继承
---封装:JS的封装不严格,可以任意访问和修改变量和方法
---多态:JS的对象都是Object类型,JS中的对象可以赋值给任意类型的其他对象
3)JS的用途:
---客户端数据计算
---客户端表单合法性验证
---浏览器事件的触发
---网页特殊显示效果制作
---服务端异步数据的提交
2.JS的使用:类似CSS的三种使用方式
1)事件定义式:事件定义时直接写JS
2)嵌入式:JS写在<scrip>(双标签)中,该标签在<head>中
3)文件调用式:代码写在.js文件中,由HTML引用(<scrip>的srf属性指定文件位置)
3.JS的语法基本与Java类似,注释方法也相同,变量的命名规则相同,关键字也基本相同。但是JS的变量类型只有一种:var,由“=”赋值,未赋值的变量的值为“undefined”。JS的数据类型有:
1)特殊类型:null,空;undefined,未定义
2)内置对象:基本对象,Number(数字)、String(字符串)、Boolean(布尔)、Function(函数)、Array(数组)
3)外置对象:window(浏览器对象)、document(文档对象)
4)自定义对象:Object
4.JS的类型转换:变量在声明时不需要指定类型,变量所引用的数据有类型
1)隐式类型转换:
---数字+字符串:数字转为字符串
---数字+布尔值:true转为1,false转为0
---字符串+布尔值:布尔值转为字符串的true或false
---布尔值+布尔值:true转为1,false转为0
2)数据类型转换函数:用于强制转换
---toString/praseInt/praseFloat
---typeof:查询当前数据类型
---isNaN:判断所转对象转换后是否为一个数字,若返回值为true,则不是数字。反之是数字
5.JS的四则运算、关系运算、逻辑运算、条件运算都与Java没有区别,但是JS种“===”:表示类型和数值都相同;“==”:表示类型不同,数值相同;“!==”:表示不全等
6.Java的表达式必须返回布尔值,但是JS的表达式可以是任意表达式,返回值也是任意的,若返回值不为空则为true,若返回值为空(null、undefined、“”、0、NaN),则为false
7.JS的内置对象:
1)String:基本与Java相同
2)Number:toFixed(num),转换为字符串,保留小数点后num位,可四舍五入或用0补齐
3)Array:sort():方法内置了比较规则(<0,互换顺序),默认从小到大排列,规则不能改变但是可以替换该规则
4)Math:用于执行数学任务
5)Date:时间类型
6)RegExp:正则对象:
---reg.exec(str):检索给定字符串,返回找到的值
---reg.test(str):检索给定字符串,返回true或false
7)String与正则:
---str.match(reg):以数组形式返回符合给定正则的字符串
---str.search(reg):返回符合正则的字符下标
8.JS的函数:
1)Function没有重载,参数可以是任意个,里面有一个arguments数组用于管理参数,Function的默认返回值是undefined,可以指定返回值
2)可以创建匿名函数(类似Java的匿名内部类):var f = function(参数){方法体};
3)全局函数:有eval():用于将字符串表达式按照数字表达式计算,并返回结果
9.BOM:浏览器对象模型,用于访问和操作浏览器窗口,JS用此实现与浏览器的对话。里面分成了几个部分,含有各自的函数。
10.DOM:文档对象模型,定义了方法用于操作HTML文档,能够改变HTML中的所有元素、属性、样式、事件。提供了增删改查等一系列的操作节点的方法
11.自定义对象:是一种特殊的数据类型,由属性和方法封装而成,有三种创建方式:
1)直接创建对象:临时封装对象使用
2)使用构造器创建对象:提供给其他人使用
3)使用JSON创建对象:封装服务端数据使用
JSON是一种轻量级的数据交换格式:
---以名/值的方式定义
---名需要“ ”引起来,字符串值需要“ ”
---多个定义之间用逗号隔开
---名称可以是属性