js学习笔记

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数值宽度

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容

  • todo:总结下实际中js的一些注意事项、表格、全选、切换、模态框等 原则: 渐进增强 平稳退化 低耦合 JS脚本...
    flyrain阅读 284评论 0 0
  • 3.6 语句 3.6.1 if语句 语法:if(condition) statement1 else statem...
    丨ouo丨阅读 269评论 0 1
  • 第8章 BOM 本章内容主要是 理解window对象 控制窗口、框架和弹出窗口 利用location对象中的页面信...
    丨ouo丨阅读 523评论 0 1
  • js的组成: 1、ECMAScript 2、BOM 整个浏览器 3、DOM document文档 从 开始到 结束...
    今生有约_57f9阅读 337评论 0 0
  • 1.什么是 DOM DOM 全称为 Document Object Model,即文档对象模型。它是一套用来管理控...
    青年心路阅读 276评论 0 0