1、加载外部js文件: src中写入外部文件。如果是XHTML文档中,可以省略后面的,但是对于HTML文档,不能使用上述这种语法。它不符合HTML规范,尤其是不能得到IE的正确 解析。
带有src属性的元素,标签直接不能再包含额外的JavaScript代码。如果包含了嵌入的代码,则只会下载并执行外部的脚本文件 ,嵌入的代码会被忽略。
src属性还可以包含来自外部域的js文件。
2、script便签的位置:
按照惯例,所有元素都应该放在页面的元素中。但是这样必须在所有的文件加载完后才显示中的元素,初始化会有一段空白。为此,现在都把外部加载的js文件放在元素中页面的内容后面,这样在解析引用的js之前,已经显示了页面内容,浏览器页面显示空白的时间缩短而感到打开页面的速度加快了。
3、数值转换函数
Number()可以用于任何数据类型。
parseInt()、parseFloat(),专门用于字符串转换为数值。
Number()转换规则:
如果是boolean值,true和false分别转换为0和1.
如果是数字值,只是传入和返回。
如果是null值,返回0.
如果是undefined,返回NaN。
如果是字符串,前导有0的忽略,十六进制的转换为十进制,如果字符串为空,转换为0;其他的都转换为NaN。
4、循环控制语句
return:终止当前方法的执行。
break:结束当前循环的执行,强制执行循环后面的语句。
continue:结束当前的循环条件,接着执行下一次循环。
5、数组操作方法:
concat():基于当前数组中的所有项创建一个新的数组。arr.concat(参数),参数可以为空、字符串或者数组。
slice():基于当前数组中的一个或者多项创建一个新的数组。参数可以为一个或者两个,参数为返回项的起始和结束位置。当参数为一个的时候,返回项至数组末尾,当参数为两个的时候,为这两个索引中间的数值。
splice():主要用于向数组的中部插入项。三种基本用法:(1)删除:可以删除任意数量的项,只要指定两个参数。如splice(0,2)则会删除前两项。(2)插入:可以向指定位置插入任意数量的项。只需要指定3个参数,起始位置,要删除的项数,插入的项。splice(2,0,"data1","data2"),从数组的第二个位置开始插入两个值,当然后面可以跟多个自己想要插入的值。(3)替换:可以插入指定的项,删除指定的项,也是需要三个参数。起始位置,要删除的项数,以及要插入的任意数量的项值。splice(2,1,"data1","data2"),表示删除第二个位置的值,同时插入两个值。同时影响两个数组的值,会生成一个新的数组,同时原来的数组也会变化。
6、数组位置操作方法:
indexOf()和lastIndexOf(),都包含两个参数,要查找的项和查找起点位置索引(可选参数)。
7、Date方法:
获取当前时间:var start=Date.now();在不支持的浏览器中,用+操作符把Date对象转换成字符串。var stop=+newDate();
getTime():获取日期的毫秒数。
getFullYear():获取四位数的年份。
getMouth():获取日期中的月份。
getDate():返回日期中的天数。
getDay():返回日期中的星期几。
getHours():返回日期中的小时数。
getMinutes():返回日期中的分钟数。
getSeconds():返回日期中的秒数。
8、js中函数没有重载。可以把函数看成是一个指针。如果两个同名函数,后一个会把前一个覆盖。
9、URL编码方法:
encodeURL()和encodeURLComponent()方法都可以对URL进行编码。其中encodeURL主要用于整个URL编码,不会对本身属于URL的特殊字符进行编码,例如冒号、正斜杠、问号和井号。而encodeURLComponent()主要用于对某一段进行编码,会对它发现的任何非标准字符进行编码。实际应用中使用encodeURLComponent()更多,因为我们更多的是对URL中的参数而不是整个URL进行编码。
对应的解码函数分别是decodeURL()和decodeURLComponent()。同时要尽量避免使用escape()和unescape().
10、eval()方法:非常强大的一个方法,只接受一个参数,即要执行的JavaScript字符串。setState('getPointData',eval("(0," + getDataInfo + ")"));setState()两个参数,一个是字符串,一个是函数。其中getDataInfo是一个定义的函数。
11、Math方法:
Math.min(),Math.max();求最大值、最小值
Math.ceil();向上舍入;
Math.floor();向下舍入;
Math.round();标准舍入;
Math.random();生成随机数;
求一个1-10之间的数值:
var num=Maht.floor(Math.random()*10+1);
通过函数来计算可能值的总数和第一个可能的值:
function selectFrom(lowerValue,upperValue){
var choices=upperValue-lowerValur+1;//获取可能值的总数
ruturn Math.floor(Maht.random()*choices+lowerValue;
}
12、函数表达式:
定义函数的两种方式:一种是函数声明,一种是函数表达式。
函数声明提升,在执行代码前,会先读取函数声明。也就是说函数声明可以放在调用语句的后面。
函数表达式创建方法:
var functionName=function(arg1,arg2,arg3){
//函数体
}//这种创建函数的方法称为匿名函数,也称为拉姆达函数。它必须在函数声明之前调用。
13、递归函数:是一个函数通过名字调用自身的情况下存在的。
14、闭包:是指有权访问另一个函数作用域中变量的函数,创建闭包的方式:在一个函数内部创建另一个函数。要与递归函数区分开。闭包会携带包含它的函数作用域,因此过度使用闭包会导致内存占用过大。
15、Windows对象
窗口关系及框架:如果页面中包含框架,则每个框架都拥有自己的window对象,并且保存在frames集合中。在frames集合中,可以通过索引或者名称来访问。如:window.frames[0]或者window.frames['frameName'].但是最好通过top来访问。如top.frames["leftFramesName"].top指的是浏览器窗口。与top相对的另一个window对象是parent。
self始终指向window,可以和window对象互换使用。
所有这些对象都是window对象的属性,可以通过window.parent、window.top等形式来访问。也就是说可以将不同层次的window对象连缀起来。如:window.parent.parent.frames["framesName"]
导航和打开窗口:
window.open();可接受4个参数。第一个:要打开的URL地址,第二个参数:窗口目标;第三个参数:一个特性字符串。第四个:布尔值。
window.open("https://hao.360.cn/?z1002","topFrame").如果有个名为topFrame的窗口,就在该窗口中打开这个URL,如果没有就创建一个名为topFrame的窗口。第二个参数也可以是下面特殊的窗口名称:_self、_parent、_top、_blank。
如果传递的第二个参数并不是一个已经存在的窗口或者框架,那么该方法就会根据第三个参数来创建一个新的窗口或者标签。如果没有第三个参数,就会打开一个带有全部默认设置(工具栏、地址栏、状态栏)的新浏览器窗口。
第三个参数是一个逗号分隔的设置字符串,表示新窗口中显示的特性。主要有以下几个:
设置值说明fullscreen yes或no 是否全屏显示,仅限IEheight数值高度,大于100left数值左坐标,不能为负locationyes或no是否显示地址栏menubaryes或no是否显示菜单栏,默认为no
resizableyes或no是否允许拖动边框改变大小,默认为noscrollbarsyes或no是否允许滚动条,默认为nostatusyes或no是否显示状态栏,默认为notoolbaryes或no是否显示工具栏,默认为notop数值上坐标,不能为负width数值宽度