关于js、jq零碎知识点

写在前面:

本文都是我目前学到的一些比较零碎的知识点,也是相对偏一点的知识,这是第二篇。先后可能没有太大的相关性,须要的朋友能够过来参考下,喜欢的能够点个赞,但愿对你们有所帮助。本文的受众是刚学前端,大手子能够跳过。javascript

1.页面加载完成以后,才开始执行函数。

$(function() { 
// 须要执行的js函数内容 
});复制代码

背景:碰到一个JQ很复杂的函数,上面简化了的总体格式,这跟自执行函数又不太同样,以前没见过这种写法,查了蛮久以后才找到这方面的内容,在这里分享一波。css

jQuery 事件 -ready() 方法

定义和用法

当 DOM(文档对象模型) 已经加载,而且页面(包括图像)已经彻底呈现时,会发生 ready 事件
ready() 函数规定当 ready 事件发生时执行的代码
ready() 函数仅能用于当前文档,所以无需选择器html

意思就是:当页面载入完毕以后就开始执行函数代码。

容许使用如下三种语法前端

语法 1java

$(document).ready(function)复制代码

语法 2jquery

$().ready(function)复制代码

语法 3git

$(function)复制代码

js貌似也有一个这类型的方法,js方法以下: github

window.onload = function() {
$("table tr:nth-child(even)").addClass("even"); //这个是jquery代码
}; 数组

js方法和jq方法的区别:

当使用js方法的时候,会在整个页面的document所有加载完成之后执行。不幸的这种方式不只要求页面的DOM tree所有加载完成,并且要求全部的外部图片和资源所有加载完成。更不幸的是,如果外部资源加载时间过长,例如图片须要很长时间来加载,那么这个js效果就会让用户感受失效了,因此当这个情景下,使用这种方法的用户体验是很是差的浏览器

使用jquery方法:就仅仅只须要加载全部的DOM结构,在浏览器把全部的HTML放入DOM tree以前就执行js效果,包括在加载外部图片和资源以前。

2.获取class和tag类型的dom节点,获取到的是一个对象数组

背景:写代码的时候,由于以前作css习惯性的用class来命名,而后直接获取了class,tagname类名节点赋值的时候一直出错,查了很久最后,知道了class和tag类型的节点,由于不惟一性,因此获取节点的时候,返回的是一个对象数组

ps:赋值出错是由于,数组对象赋值时不能直接a=b,要a[index]=b,由于这里获取class,tagName的dom节点,浏览器不知道class和tag在html里面有多少个(class、tag能够有多个),因此默认生成的是一个对象数组,因此当赋值的时候,要有相应的下标,不然就会出错。

getElementsByClassName()w3c定义:

getElementsByClassName() 方法返回文档中全部指定类名的元素集合,做为 NodeList 对象。
NodeList 对象表明一个有顺序的节点列表。
咱们可经过节点列表中的节点索引号来访问列表中的节点(索引号由0开始)。

解决方式:

由于id的惟一性质(同一个html里面只能取一个相同的id),没特殊状况最好用id命名,而且用id获取dom,这样不容易出错,就算写css习惯性的采用class,也能够再标签里面再加一段id="名字"。


3.变量做用域,参数传递不进去。

背景:

这种状况是做用域的问题,上面定义的变量是全局变量,在虽然是一个闭包,可是应该可使用全局的变量,回一级一级往上找这个变量。这里不太清楚为何会没有找到?

然而,虽然不太清楚中间发生了什么,可是最后问题仍是成功的解决了。

全局的window对象

JavaScript中的任何一个全局函数或变量都是window的属性,能够是使用以下方法获取dom,而且操做dom。

栗子1:

<script type="text/javascript">
    var name="这里是测试";
    document.write(window.name);//输出name的内容
</script>复制代码

实际应用以下:

上图中变量做用域的问题

应用场景:

当你层次嵌套多层以后,取不到变量或对象的时候,就能够使用window全局对象的方法,来传递参数,使其成功链接。

找不到关于这方面的比较详细的资料,大伙儿就记住这个方法就行了。


换行符和占位符在字符串里面正常生效

效果如图:

如图,占位符和换行符在字符串中正常生效,不会变成字符串。其余的我不知道,反正这两个亲测可行,我的以为蛮神奇,一直觉得会变成字符串。

评论区还有一种说法,意思是说在字符串中使用特殊符号,在输出的时候能够起效果,然而将特殊符号做为一个值来计算,或者是当作一个变量来使用的话,这种状况下就会出错!so,咱们仍是不要用特殊符号乱搞事情,输出的时候使用便可,并且好像应用场景也就输出的时候,应该没有什么其余场景应用的到了吧?

你们能够看看:


后话:

先记这些,之后学到了新的东西,累积起来,再发一些,这些都是我目前学到的一些比较零碎的知识点,也是相对偏一点的知识,再次强调一下是写给小白看的,让他们之后少踩些坑,小白们也多点参考资料。

最后:但愿看完的朋友点个喜欢,也能够关注一下我,如今这阶段基本上每月都不会少于十五篇文章(看到干货我也会进行分享)。写的很差之处,欢迎指点。码字不易,感谢支持!
ps:目前待业,坐标北京,求推荐工做。而后但愿我写哪方面的文章能够在底下评论,或者是私信我,虽然写的很差,但我就当这是记录本身成长的一种方式咯。(前提是我会了,若是不会我也会记下来,等会了的时候再更出来。)
掘金我的主页简书主页连接csdn博客主页连接github

以上。

相关文章
相关标签/搜索