JavaScript
- 基于对象和数据驱动的语言。应用于客户端。
- 基于对象:提供好了对象,可以直接拿来使用。
- 事件驱动:html做的网站是静态的效果,JavaScript是动态 的效果
- 客户端:专门指的是浏览器
特点:
- 交互性:信息的动态交互,
- 安全性:不能访问磁盘,
- 跨平台性:java里面的跨平台性,虚拟机。js只要是能支持js的浏览器就可以。
JavaScript和java的区别:
- java是sun开发的现在是Oracle公司收购了,js是网景公司
- JavaScript是基于对象的,java是面向对象的
- java是强类型的语言,js是弱类型的语言
java:int i=10;js:var i=10;
JavaScript是只需解析就可以执行,而java需要先编译成字节码,再执行。
JavaScript的组成:三部分:
- ECMAScript:js的语法
- BOM:broswer object model:浏览器对象模型 对浏览器里面的部分进行操作
- Dom:document object model:文档对象模型 对内容进行操作。
js中的一些注意事项:
(1)在js里面是不区分整数和小数的。123/1000*1000=123
(2)"456"+1="4561",如果"456"-1=455。双引号表示字符串
(3)js中Boolean的数据也能进行加减
(4)js中两个等号和三个等号的区别:两个等号比较的是值,三个等号比较的是值和类型。
(5)document.write("直接输出在界面上,不会像alert一样弹出警告框,里面还可以输入html代码"),如,document.write("<hr>")页面输出的是水平线,document.write("里面的标签属性需要用到双引号的话,就改为单引号,因为document.write("")里面本来就有双引号")
(6)Js的数组:
- java里面数组的定义int [] arr={"","",""}
- js里面的定义方式(三种):
- 第一种:var arr=[1,2,3,"4",true]
- 第二种:var arr1=new Array(5):arr1[0]="1"定义一个数组,数组长度为5,使用的是内置对象Array对象
- 第三种:使用内置对象Array。var arr2=new Array(3,4,5)表示定义一个数组,数组里面的对象时3,4,5
(7)Js里面定义函数的方式有三种:
- 第一种:使用关键字function。function 方法名(参数列表,参数不用写类型){方法体,返回值可有可无}
- 第二种方式:匿名函数 function (参数列表){方法体和返回值}在调用的时候没有名字,所以写成var add=function(){},调用的时候直接add();该方法使用频率高,尤其在写事件的过程中。
- 第三种方式(用的很少):也称为动态函数,参数和方法体里的函数都可以通过参数传递进去。
使用js里面的一个内置对象Function
new Function(注意F大写)
var add=new Function(“参数列表”,“方法体和返回值”)
常用的就第一第二种,第三种只作了解
(8)Js全局变量在Script标签中定义一个变量,这个变量在页面中的js部分都可以是使用。就是var i定义第一个Script中则该页面的第二个Script中依旧可以使用,即可以在方法外部使用,在方法内部使用,在另外一个Script中使用
局部变量:在方法内部定义一个变量,只能在方法的内部使用。
(9)html是自上而下解析的,所以在js中获取id的的时候建议放在</body>的后面。
(10)js的string对象 字符串:
- var str=“asdf”str1.concat(str2):字符串拼接。
- str.charAt(0),字符串的第一个字符,
- str.indexof(“字符串”),没有返回-1。
- str.split("")切分字符串,切分出来是一个数组。
- str.replace(“原始值a”,“替换值Q”)。
- str.substr(“开始位置2”,“length”)表示从第二位开始向后截取字符length位数
- substring(“开始位置1”,“结束位置5”)表示从第一位开始到第五位结束
(11)Js的Array对象:创建数组(三种)
- var arr1=【1,2,3】
- var arr=newArray(3)//长度为3
- var arr3=new Array(1,2,3)元素为三个
- concat()数组的连接arr1.concat(arr2)
- join()根据一个指定的字符分割一个数组
- push():往数组末端添加一个元素(如果添加的是数组长度也算为增长1,意思是将数组作为一个整体添加进去了,作为数组的一个元素),但是该函数在调价完成后会有一个返回值
- pop()表示删除数组最后一个元素并返回那个元素
- reverse()颠倒数组元素,1->n变成n->1
(12)Js的Date对象:
- java获取时间:Date date=new Date()
- js获取时间:var date=new Date(),转化为习惯中国人的时间格式date:使用函数toLocaleString()
- getFullYear()获取当前年
- 获取当前月:getMonth()但是注意的是月得范围是0~11所以要加1
- getDay()返回的是星期(0-6)星期日返回的是0
- getDate()获取当前的天1~31
- 获取当前的小时:getHours()
- 获取当前的分钟:getMinutes()
- 获取当前的秒:getSeconds()
- getTime()返回1970年1月1日至今的毫秒数:应用场景:使用毫秒数处理缓存的效果(不有缓存)如:http://www.baidu.com?毫秒数
(13)Js的Math对象(数学的运算)对象里面的都是静态方法,使用的时候可以直接使用Math.方法,重要的几个方法如下:
- Math.ceil(10.4)11向上舍入在整数的基础上加一
- Math.floor(10.7)10向下舍入
- Math.round(10.4)10四舍五入
- random()得到一个随机数(0-1)(0.0-1.0之间的伪随机数)获取一个0-9的随机数Math.floor(Math.random()*10)
- pow(x,y)返回x的Y次幂
(14)Js的全局函数:不属于任何一个对象,直接写名称来使用
- eval():可以直接执行js代码如str=“alert(“1234”)”eval(str)可以直接执行弹出框
- encodeURI()对字符进行编码
- decodeURI)()对字符进行解码
- isNaN()检查当前的字符串是否是数字,不是数字返回值为true和是数字返回false
- parseInt()解析一个字符串并且返回一个整数
(15)Js的重载是否存在???答案是不存在调用最后一个同名的方法。但是可以通过其他方法模拟重载。多的参数都保存在arguments数组里面。
(16)Js的Bom对象:
- navigator:可以获取客户机的信息,或者是浏览器的信息
- navigator.appName
- screen:可以获屏幕的宽和高
- location:location.href请求本url地址 href既是属性也可以设置url地址location.href=(“hello.html”)表示跳转到hello.html
- history:请求的url的历史记录类似于浏览器上的前进和后退,到上一个history.back(),到下一个history.forward()
window对象:window对象是JavaScript的顶层对象,窗口对象
- window.alert()弹出一个框
- window.confirm()确认框 提示框会返回一个boolean的值
- window.prompt("请输入","0")对话框,可以输入数据
- window.open():打开一个新的窗口
- window.close()关闭一个窗口
(17)Js定时器
- setInterval("js代码",毫秒数)表示每几秒执行一次js代码
- setTimeout("js代码",毫秒数)设置延时
- clearInterval,clearTimeout清除
(18)以上仅是Js内容总结的一部分,关于Js中dom操作等知识,下一篇文章总结。
注:以上文章仅是个人学习过程总结,若有不当之处,望不吝赐教。