js的一些困惑之处,貌似懂了
一、字符串中包含变量怎么弄
使用反引号(键盘左上角,esc键的下面那个)
用反引号把字符串包起来,用${}把变量括在里面
var name = 'green'; //这里用的是正常的单引号
var string = `我的名字叫:${name}`; //注意这里用的是反引号
console.log(string);
二、随处可见的 function $()
只用单个$符号为变量命名
下面转载自:https://www.cnblogs.com/jokerjason/p/7404649.html
$在JS中本身只是一个符号而异,在JS里什么也不是。
但在JS应用库JQUERY的作者将之做为一个自定义函数名了,这个函数是获取指定网页元素的函数,使用非常之频繁,所以好多新手不知道,还以为$是JS的什么特殊语法。
后来,可能有些程序员JQUERY用得多了,发现$这个函数很好用,很方便,所以,在不用JQUERY的情况,一般自己也会自定义一个$函数。
即:
function $(Nid){
return document.getElementById(Nid);
}
就这么简单(在JSQUERY里可能稍微功能再强大一点,但主要还是我写的这个功能。)
以后在网页就不用每次使用document.getElementById("ID名")来获取元素,只用$('ID名')即可,非常简使了。
三、js加载完成后,常驻内存(异步)
html文档是自上而下加载并同时执行的,加载完也就执行完了,js也是,但不同于html,js加载后常驻内存.
举个例子说明一下,比如js中的for循环:
1 <head> 2 <meta charset="UTF-8"> 3 <title>Title</title> 4 <style type="text/css"> 5 *{ 6 margin: 0; 7 padding: 0; 8 } 9 #box{ 10 border:1px solid #ccc; 11 width: 430px; 12 height: 70px; 13 padding-top: 430px; 14 background: url("images/big_pic1.jpg") no-repeat; 15 } 16 #box ul li{ 17 display: inline-block; 18 margin-right: 15px; 19 } 20 21 </style> 22 </head> 23 <body> 24 <div id="box"> 25 <ul> 26 <li> 27 <img src="images/pic1.jpg" class="smallimg"> 28 </li> 29 <li> 30 <img src="images/pic2.jpg" class="smallimg"> 31 </li> 32 <li> 33 <img src="images/pic3.jpg" class="smallimg"> 34 </li> 35 <li> 36 <img src="images/pic4.jpg" class="smallimg"> 37 </li> 38 <li> 39 <img src="images/pic5.jpg" class="smallimg"> 40 </li> 41 </ul> 42 </div> 43 <script type="text/javascript"> 44 var smallImg = document.getElementsByClassName('smallimg'); 45 var boxDiv = document.getElementById('box'); 46 for(i=0; i<smallImg.length; i++){ 47 smallImg[i].onmouseover = function () { //由于鼠标没碰到指定地方,所以并未触发鼠标悬浮效果. 48 boxDiv.style.background = `url("images/big_pic${i}.jpg") no-repeat`; //此处i的值是for循环后的5 49 } 50 } 51 </script> 52 53 </body>
网页加载完成,for循环完毕,由于鼠标没碰到指定地方,所以并未触发鼠标悬浮效果.执行完毕后for循环中i的值是最大值5.
但是鼠标的悬浮效果是可以在for循环执行完成后,继续可用的,i始终是5.(异步,并发)
四、为多个同类(class属性相同)标签对象动态增加新属性(id属性)的新方法
这里如果不用id属性,可能在谷歌浏览器网页检查中发现不了标签的增加的新属性.但不妨碍我们对其的使用.
1 <div class="s">你好</div> 2 <div class="s">哼哼</div> 3 <script type="text/javascript"> 4 //1. 找到触发事件的对象 5 var oDivs = document.getElementsByClassName('s'); 6 //2. 遍历对象 7 for(var i=0; i<oDivs.length; i++){ 8 //3. 为每个对象增加新的属性id=0 9 oDivs[i].id=`${i}`; //注意这里用的是反引号 10 } 11 </script>

浙公网安备 33010602011771号