JavaScript(JS)的简单使用
<p><span style="font-size: 14pt"><strong>一、什么是JS(Javascript)?</strong></span></p><p><span style="font-size: 15px"> Javascript是一种脚本语言,被广泛用于Web应用开发,常用来为网页添加各式各样的功能,为用户提供更加流畅的浏览效果。</span></p>
<p><span style="font-size: 15px"> <span style="color: rgba(255, 0, 255, 1)">Javascript严格区分大小写。</span></span></p>
<p><span style="font-size: 15px; color: rgba(0, 0, 0, 1)"><strong>前端三剑客:html+css+js</strong></span></p>
<p> html:结构(房子)<br> css:样式(装修)<br> js:行为(动态的修改行为和样式:房子的结构和装修想改就改)</p>
<p> </p>
<p><span style="font-size: 15px"><strong>使用JS的三种写法:</strong></span></p>
<p><span style="font-size: 15px"><strong> </strong>1、在标签内部完成(<span style="font-size: 14px">不常用</span>)</span></p>
<p><span style="font-size: 15px">例:(alert("弹窗内容"):出现一个弹窗)</span></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">a </span><span style="color: rgba(255, 0, 0, 1)">href</span><span style="color: rgba(0, 0, 255, 1)">="javascript:alert(0);"</span><span style="color: rgba(0, 0, 255, 1)">></span>点我啊!<span style="color: rgba(0, 0, 255, 1)"></</span><span style="color: rgba(128, 0, 0, 1)">a</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">p </span><span style="color: rgba(255, 0, 0, 1)">onclick</span><span style="color: rgba(0, 0, 255, 1)">="alert('来啦老弟!')"</span><span style="color: rgba(0, 0, 255, 1)">></span>请点击我!<span style="color: rgba(0, 0, 255, 1)"></</span><span style="color: rgba(128, 0, 0, 1)">p</span><span style="color: rgba(0, 0, 255, 1)">></span></pre>
</div>
<p> </p>
<p><span style="font-size: 15px; color: rgba(0, 0, 0, 1)"><strong> </strong>2、在script标签中完成(<span style="font-size: 14px">注意:script标签可以写在html中的任意位置,但建议写在页面最底部,利于提高用户体验</span>)</span></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">script </span><span style="color: rgba(255, 0, 0, 1)">type</span><span style="color: rgba(0, 0, 255, 1)">="text/javascript"</span><span style="color: rgba(0, 0, 255, 1)">></span><span style="background-color: rgba(245, 245, 245, 1); color: rgba(0, 0, 0, 1)">
alert(</span><span style="background-color: rgba(245, 245, 245, 1); color: rgba(0, 0, 0, 1)">"</span><span style="background-color: rgba(245, 245, 245, 1); color: rgba(0, 0, 0, 1)">哈哈哈</span><span style="background-color: rgba(245, 245, 245, 1); color: rgba(0, 0, 0, 1)">"</span><span style="background-color: rgba(245, 245, 245, 1); color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 0, 255, 1)"></</span><span style="color: rgba(128, 0, 0, 1)">script</span><span style="color: rgba(0, 0, 255, 1)">></span></pre>
</div>
<p> </p>
<p> </p>
<p> 3、外连式(创建一个Js文件,里边写的都是Js代码,然后再html中引用)</p>
<p>html文件中引用js文件:</p>
<div class="cnblogs_code">
<pre> <span style="color: rgba(0, 128, 0, 1)"><!--</span><span style="color: rgba(0, 128, 0, 1)"> 因为ha.js文件和咱们这个html文件在同一文件夹,所以路径直接写src="ha.js" </span><span style="color: rgba(0, 128, 0, 1)">--></span>
<span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">script </span><span style="color: rgba(255, 0, 0, 1)">type</span><span style="color: rgba(0, 0, 255, 1)">="text/javascript"</span><span style="color: rgba(255, 0, 0, 1)"> src</span><span style="color: rgba(0, 0, 255, 1)">="ha.js"</span><span style="color: rgba(0, 0, 255, 1)">></</span><span style="color: rgba(128, 0, 0, 1)">script</span><span style="color: rgba(0, 0, 255, 1)">></span> </pre>
</div>
<p> </p>
<p>js文件(后缀为.js的文件):</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">js代码就写在这里,如下:</span>
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">当页面刷新就会弹窗以下弹框</span>
window.onload=<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(){
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">alert()是一个弹窗</span>
alert("欢迎您的到了!"<span style="color: rgba(0, 0, 0, 1)">);
}</span></pre>
</div>
<p> </p>
<p><span style="font-size: 14pt"><strong>二、JS的特性</strong></span></p>
<p> <span style="font-size: 16px"><strong>1、js的数据类型</strong></span></p>
<p><strong> </strong>js中的数据类型只有三种:number,String,boolean</p>
<p> number:所有数字类型的统称。</p>
<p> String:字符串类型。</p>
<p> boolean:布尔类型(true/false)</p>
<p><strong> <span style="font-size: 16px">2、特殊类型</span></strong></p>
<p> NaN:出现非数字</p>
<p> Infinity:除数为0</p>
<p> undefined:未定义</p>
<p> null:空(必须主动赋值才会是null,没有赋值都为undefined)</p>
<p> <span style="font-size: 16px"><strong>3、运算符</strong></span></p>
<p> ==:代表普通比较</p>
<p> ===:代表全等</p>
<p> " "和undefined表示没有值:null其实是一个值</p>
<p> ||:或(<span style="font-size: 14px">注意:在java中,||返回的一定是boolean值,但在js中,返回的是第一个为true的值</span>)</p>
<p> </p>
<p><span style="font-size: 14pt"><strong>三、具体实例</strong></span></p>
<p> <strong><span style="font-size: 16px">1、JS预编译 </span></strong> </p>
<p> <span style="font-size: 14px"> js的代码执行顺序是从上往下执行,</span><span style="font-size: 14px"><em><em>但在代码执行之前js会事先大概扫描一遍,把所有变量的定义放到最前面(只是定义,不包括值)</em></em></span></p>
<div class="cnblogs_code">
<pre><script type="text/javascript">
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">js的代码执行顺序是从上往下执行</span>
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">但在代码执行之前js会事先大概扫描一遍,把所有变量的定义放到最前面(只是定义,不包括值)</span>
<span style="color: rgba(0, 0, 255, 1)">var</span> use="23"<span style="color: rgba(0, 0, 0, 1)">;
console.debug(use);
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">结果为23</span>
<span style="color: rgba(0, 0, 255, 1)">var</span><span style="color: rgba(0, 0, 0, 1)"> userna;
console.debug(userna);
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">结果为undefined</span>
<span style="color: rgba(0, 0, 0, 1)">
console.debug(us);
</span><span style="color: rgba(0, 0, 255, 1)">var</span><span style="color: rgba(0, 0, 0, 1)"> us;
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">结果为undefined</span>
<span style="color: rgba(0, 0, 0, 1)">
console.debug(username);
</span><span style="color: rgba(0, 0, 255, 1)">var</span> username="23"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">结果为undefined</span>
<span style="color: rgba(0, 0, 0, 1)">
console.debug(usern);
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">直接报错,因为usern没定义</span>
</script></pre>
</div>
<p> </p>
<p> <span style="font-size: 16px"><strong>2、对象三步曲</strong></span></p>
<p><span style="font-size: 16px"><strong> </strong><span style="font-size: 14px">1、创建对象</span></span></p>
<p><span style="font-size: 16px"><span style="font-size: 14px"> 2、设置对象的属性和方法:添加,修改,删除</span></span></p>
<p><span style="font-size: 16px"><span style="font-size: 14px"> 3、获取对象的属性和方法</span></span></p>
<div class="cnblogs_code">
<pre><script type="text/javascript">
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">1、创建对象</span>
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">var obj = new object();</span>
<span style="color: rgba(0, 0, 255, 1)">var</span> obj =<span style="color: rgba(0, 0, 0, 1)"> {};
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2.设置对象的属性与方法(.和[]是一样的)</span>
<span style="color: rgba(0, 128, 0, 1)">//添加属性</span><span style="color: rgba(0, 128, 0, 1)">方法一:</span>
obj.name="小王"<span style="color: rgba(0, 0, 0, 1)">
obj.age </span>=23<span style="color: rgba(0, 0, 0, 1)">;
obj.say </span>= <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(){
console.debug(</span>"过来呀!"<span style="color: rgba(0, 0, 0, 1)">);
}
</span><span style="color: rgba(0, 128, 0, 1)">//添加属性</span><span style="color: rgba(0, 128, 0, 1)">方法二:</span>
obj["name"]="小王"<span style="color: rgba(0, 0, 0, 1)">;
obj[</span>"age"] =23<span style="color: rgba(0, 0, 0, 1)">;
obj[</span>"say"]= <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(){
console.debug(</span>"过来呀!"<span style="color: rgba(0, 0, 0, 1)">);
}
</span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">
for...in是用于循环与遍历数组/对象的
数组:key就是下标
对象:key就是对象的属性
</span><span style="color: rgba(0, 128, 0, 1)">*/</span>
<span style="color: rgba(0, 0, 255, 1)">for</span>(<span style="color: rgba(0, 0, 255, 1)">var</span> key <span style="color: rgba(0, 0, 255, 1)">in</span><span style="color: rgba(0, 0, 0, 1)"> obj){
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">key是下标</span>
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">输出属性和属性类型</span>
console.debug(obj,<span style="color: rgba(0, 0, 255, 1)">typeof</span><span style="color: rgba(0, 0, 0, 1)"> obj);
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">如果obj对象的属性类型为方法,就输出</span>
<span style="color: rgba(0, 0, 255, 1)">if</span>(<span style="color: rgba(0, 0, 255, 1)">typeof</span> obj == "function"<span style="color: rgba(0, 0, 0, 1)">){
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">输出属性</span>
<span style="color: rgba(0, 0, 0, 1)"> console.debug(obj);
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">调用对象中 的方法属性</span>
<span style="color: rgba(0, 0, 0, 1)"> obj();
}
}
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">修改(修改与添加设置写法是一样的)</span>
obj.name="小李"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">删除某一个属性</span>
<span style="color: rgba(0, 0, 255, 1)">delete</span><span style="color: rgba(0, 0, 0, 1)"> obj.age;
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">3.获取属性和方法</span>
<span style="color: rgba(0, 0, 0, 1)"> console.debug(obj.name);
console.debug(obj.age);
console.debug(obj.say);
obj.say();
</span></script></pre>
</div>
<p> </p>
<p> </p>
<p> <span style="font-size: 16px"><strong>3、arguments</strong></span>(获取到调用函数时传进去的所有参数) </p>
<p> js内置了很多对象(如:arguments ): 内置对象(js自动为你准备好的)</p>
<p> arguments -> 每次调用方法都会在方法中创建这对象</p>
<p> arguments -> 伪数组(它里面装的就是这个方法的所有参数)</p>
<div class="cnblogs_code">
<pre><script type="text/javascript">
<span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
js中调用函数(方法)和参数无关
js内置了很多对象: 内置对象(js自动为你准备好的)
arguments -> 每次调用方法都会在方法中创建这对象
arguments -> 伪数组(它里面装的就是这个方法的所有参数)
</span><span style="color: rgba(0, 128, 0, 1)">*/</span>
<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> add(){
</span><span style="color: rgba(0, 128, 0, 1)">//打印</span><span style="color: rgba(0, 128, 0, 1)">每次调用add方法时传的所有参数</span>
<span style="color: rgba(0, 0, 0, 1)"> console.debug(arguments)
</span><span style="color: rgba(0, 0, 255, 1)">var</span> result = 0<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 0, 255, 1)">for</span>(<span style="color: rgba(0, 0, 255, 1)">var</span> i=0;i<arguments.length;i++<span style="color: rgba(0, 0, 0, 1)">){
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">将传进add方法的参数全部加起来</span>
result +=<span style="color: rgba(0, 0, 0, 1)"> arguments;
}
</span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> result;
}
console.debug(add(</span>5<span style="color: rgba(0, 0, 0, 1)">)); //5
console.debug(add(</span>5,8<span style="color: rgba(0, 0, 0, 1)">)); //13
console.debug(add(</span>5,8,2<span style="color: rgba(0, 0, 0, 1)">)); //15
console.debug(add(</span>5,8,2,5<span style="color: rgba(0, 0, 0, 1)">)); //20
</span></script></pre>
</div>
<p> </p>
<p> <span style="font-size: 16px"><strong>4、js中调用函数(方法)和参数无关</strong></span> </p>
<p> <strong>注意:</strong>调用函数和参数无关,如果出现相同名字的方法,根据js代码从上往下执行的原则,下面的方法会覆盖上面的方法。</p>
<p> 返回值:想返回什么直接return 值 进行返回,如果没有return,自动返回undefined。</p>
<p> <span style="color: rgba(255, 153, 0, 1)">JS中一切都是对象</span></p>
<p><em id="__mceDel"> <em id="__mceDel">函数就是方法,方法就是函数</em></em></p>
<p> </p>
<p><em id="__mceDel"><em id="__mceDel"> 函数:面向过程的说法 ;方法:面向对象的说法</em></em></p>
<p> </p>
<div class="cnblogs_code">
<pre><script type="text/javascript">
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">一切都是对象</span>
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">函数就是方法,方法就是函数</span>
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 函数:面向过程的说法方法:面向对象的说法</span>
<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> say(){
alert(</span>0<span style="color: rgba(0, 0, 0, 1)">);
}
say(); </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">调用函数必须要加一个括号</span>
<span style="color: rgba(0, 0, 255, 1)">var</span> say = <span style="color: rgba(0, 0, 255, 1)">new</span> Function("a","b","return a+b;"<span style="color: rgba(0, 0, 0, 1)">);
console.debug(say(</span>4,6<span style="color: rgba(0, 0, 0, 1)">));
</span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
注意:调用函数和参数无关,如果出现相同名字的方法,根据js代码从上往下运行原则,下面的方法会覆盖上边的方法
返回值:想返回什么直接return 值 进行返回,如果没有return,自动返回undefined
</span><span style="color: rgba(0, 128, 0, 1)">*/</span>
<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> say(a,b){
alert(a</span>+<span style="color: rgba(0, 0, 0, 1)">b);
}
console.debug(say(</span>5,6));<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">控制台打印11</span>
console.debug(say(5));<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">控制台打印NaN,因为第二个参数为undefined</span>
console.debug(say(5,6,7));<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">控制台打印11 </span>
<span style="color: rgba(0, 0, 0, 1)">
say(</span>4,6<span style="color: rgba(0, 0, 0, 1)">);
</span></script></pre>
</div>
<p> </p>
<p> <span style="font-size: 16px"><strong>5、动态调用方法</strong></span></p>
<p><span style="font-size: 16px"><strong> </strong><span style="font-size: 14px; color: rgba(255, 153, 0, 1)">使用.与[]是一个效果(就是说可以用.的都可以用[])</span></span></p>
<div class="cnblogs_code">
<pre><script type="text/javascript">
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">我们拿一个对象的属性,使用.与[]是一个效果(就是说可以用.的都可以用[])</span>
<span style="color: rgba(0, 0, 0, 1)"> console.debug(window.username);
console.debug(window[</span>"username"<span style="color: rgba(0, 0, 0, 1)">]);
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">用[]调用方法,称为:动态调用(因为这样写方法名就可以随意更换了,但参数还在)</span>
window["say"](5,5<span style="color: rgba(0, 0, 0, 1)">);
console.debug(window);
</span></script></pre>
</div>
<p> </p>
<p> <span style="font-size: 16px"><strong>6、全局变量</strong></span><em id="__mceDel"> </em></p>
<p><em id="__mceDel"> </em><strong>window</strong>->我们在外部定义【全局变量:script标签里面,方法外面】的所有的变量以及方法都属于顶层对象,可以直接用window点出来</p>
<p> <span style="color: rgba(255, 102, 0, 1)"><strong>注意:</strong>定义的全局变量请不要使用如:name,close,onclick,onclose........作为名字,它们都是JS中的关键字,使用了会把js原有的名字覆盖,会出问题。</span></p>
<p><span style="color: rgba(255, 102, 0, 1)"> 查看js的关键字:<span style="color: rgba(0, 0, 0, 1)">console.debug(window); <span style="color: rgba(51, 153, 102, 1)">这句代码会在浏览器控制台上打印出JS中的关键字</span></span></span></p>
<div class="cnblogs_code">
<pre><script type="text/javascript">
<span style="color: rgba(0, 0, 255, 1)">var</span> username = "张三"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> say(a,b){
alert(a</span>+<span style="color: rgba(0, 0, 0, 1)">b);
}
console.debug(window);
console.debug(username);
console.debug(window.username);
window.say(</span>5,7<span style="color: rgba(0, 0, 0, 1)">);
</span></script></pre>
</div>
<p> </p>
<p> <span style="font-size: 16px"><strong>7、对象的拷贝</strong></span></p>
<div class="cnblogs_code">
<pre><script type="text/javascript">
<span style="color: rgba(0, 0, 255, 1)">var</span> obj01 =<span style="color: rgba(0, 0, 0, 1)"> {
name:</span>"小八戒"<span style="color: rgba(0, 0, 0, 1)">,
age:</span>34<span style="color: rgba(0, 0, 0, 1)">,
email:</span>"xxx@qq.com"<span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">var</span> obj02 =<span style="color: rgba(0, 0, 0, 1)"> {
name:</span>"小悟空"<span style="color: rgba(0, 0, 0, 1)">
};
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">遍历第一个对象,把它的所有属性交给第二个对象</span>
<span style="color: rgba(0, 0, 255, 1)">for</span>(<span style="color: rgba(0, 0, 255, 1)">var</span> key <span style="color: rgba(0, 0, 255, 1)">in</span><span style="color: rgba(0, 0, 0, 1)"> obj01){
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">判断一个对象是否有这个属性</span>
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> hasOwnProperty()来判断是否已经存在这个属性</span>
<span style="color: rgba(0, 0, 255, 1)">if</span>(!<span style="color: rgba(0, 0, 0, 1)">obj02.hasOwnProperty(key)){
obj02</span>=<span style="color: rgba(0, 0, 0, 1)"> obj01;
}
}
console.debug(obj01)
console.debug(obj02)
</span></script></pre>
</div>
<p> </p>
<p> <span style="font-size: 16px"><strong>8、函数也是一个对象</strong></span></p>
<p> 函数也是一个对象,也可以创建属性,还可以在自己基础上再创建方法</p>
<div class="cnblogs_code">
<pre><script type="text/javascript">
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">函数也是一个对象</span>
<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> say(){
alert(</span>0<span style="color: rgba(0, 0, 0, 1)">);
}
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">say()方法添加name,age,sex,hello()属性</span>
say.name = "haha"; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">name是一个只读属性</span>
say.age = 5<span style="color: rgba(0, 0, 0, 1)">;
say.sex </span>= <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">创建hello()方法</span>
say.hello = <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(){
alert(</span>"hello..."<span style="color: rgba(0, 0, 0, 1)">)
}
console.debug(say);
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">调用say方法的属性hello()方法</span>
<span style="color: rgba(0, 0, 0, 1)"> say.hello();
</span></script></pre>
</div>
<p> </p>
<p> <span style="font-size: 16px"><strong> 9、this</strong></span></p>
<p> this在JS中是一个很重要,很常用的属性,<span style="color: rgba(255, 102, 0, 1)">谁调用,this就指向谁。</span></p>
<div class="cnblogs_code">
<pre><script type="text/javascript">
<span style="color: rgba(0, 0, 255, 1)">var</span> obj01 =<span style="color: rgba(0, 0, 0, 1)"> {
name:</span>"小张"<span style="color: rgba(0, 0, 0, 1)">,
age:</span>12<span style="color: rgba(0, 0, 0, 1)">
};
</span><span style="color: rgba(0, 0, 255, 1)">var</span> obj02 =<span style="color: rgba(0, 0, 0, 1)">{
name:</span>"小王"<span style="color: rgba(0, 0, 0, 1)">,
age:</span>45<span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">谁调用,this就指向谁</span>
<span style="color: rgba(0, 0, 255, 1)">var</span> say = <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(a,b){
console.debug(a,b);
console.debug(</span><span style="color: rgba(0, 0, 255, 1)">this</span>.name+","+<span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">.age);
}
obj01.hello </span>=<span style="color: rgba(0, 0, 0, 1)"> say;
obj01.hello();
obj02.hello </span>=<span style="color: rgba(0, 0, 0, 1)"> say;
obj02.hello();
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">改变this的指向</span>
<span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
call和apply都可以改变this的指向
call:是可变 参数方案,直接传参
apply:第二个参数必需是一个数组
</span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">
say.call(obj01,</span>3,6<span style="color: rgba(0, 0, 0, 1)">);
say.apply(obj02,[</span>4,6<span style="color: rgba(0, 0, 0, 1)">])
</span></script></pre>
</div>
<p> </p>
<p><span style="font-size: 16px"><strong> 10、prototype</strong></span></p>
<div class="cnblogs_code">
<pre><script type="text/javascript">
<span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
prototype:为原生对象扩展一个方法(按照自己需要的格式显示时间)
</span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">
Date.prototype.format </span>= <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(){
console.debug(</span><span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">按照自己需要的格式显示时间</span>
<span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">this</span>.getFullYear()+"-"+(<span style="color: rgba(0, 0, 255, 1)">this</span>.getMonth()+1)+"-"+<span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">.getDate();
}
</span><span style="color: rgba(0, 0, 255, 1)">var</span> date = <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> Date();
console.debug(date.getMonth())
console.debug(date.getFullYear())
console.debug(date.format());
</span></script></pre>
</div>
<p> </p>
<p><strong><span style="font-size: 16px"> 11、回调函数</span></strong></p>
<div class="cnblogs_code">
<pre><script type="text/javascript">
<span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
* 我们可以把一个函数当作另外一个函数的属性传过去,而传过去的这个函数我们把它称之为回调函数
</span><span style="color: rgba(0, 128, 0, 1)">*/</span>
<span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">
var i = 0;
setInterval(function(){
console.debug(i++);
},1000);
</span><span style="color: rgba(0, 128, 0, 1)">*/</span>
<span style="color: rgba(0, 0, 255, 1)">var</span> i=0<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> haha(){
console.debug(i</span>++<span style="color: rgba(0, 0, 0, 1)">)
}
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">定时器:每过一秒把haha()函数当setInterval()函数的属性传回去再次执行</span>
setInterval(haha,1000<span style="color: rgba(0, 0, 0, 1)">);
</span></script></pre>
</div>
<p> </p>
<p><span style="font-size: 16px"><strong> 12、匿名函数</strong></span></p>
<div class="cnblogs_code">
<pre><script type="text/javascript"><span style="color: rgba(0, 128, 0, 1)">
/*</span><span style="color: rgba(0, 128, 0, 1)">*
* 匿名函数就是一个没有名称的函数
它可以改变代码的作用域
jQuery $
</span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">
(</span><span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(a,b){
console.debug(a</span>+<span style="color: rgba(0, 0, 0, 1)">b)
})(</span>3,9<span style="color: rgba(0, 0, 0, 1)">)
</span></script></pre>
</div>
<p> </p>
<p><span style="font-size: 16px"><strong> 13、闭包</strong></span></p>
<div class="cnblogs_code">
<pre><script type="text/javascript">
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">闭包,指的是语法。简单理解就是:函数中可以使用函数之外定义的变量。一种封装特性</span>
<span style="color: rgba(0, 0, 255, 1)">var</span> username ="王权富贵"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> say(){
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">这里的函数之外的变量指的是username</span>
<span style="color: rgba(0, 0, 0, 1)"> console.debug(username);
}
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">调用函数/方法</span>
<span style="color: rgba(0, 0, 0, 1)">say();
</span></script></pre>
</div>
<p> </p>
<p><span style="font-size: 16px"><strong> 14、计数器</strong></span></p>
<div class="cnblogs_code">
<pre><script type="text/javascript"><span style="color: rgba(0, 0, 0, 1)">
(</span><span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(){
</span><span style="color: rgba(0, 0, 255, 1)">var</span> result = 0<span style="color: rgba(0, 0, 0, 1)">;
window.getRes </span>= <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(){
result</span>++<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> result;
}
})()
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">让变量result的值只能通过方法修改,无法直接修改</span>
console.debug(getRes()); <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">1</span>
console.debug(getRes()); <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2</span>
<span style="color: rgba(0, 0, 0, 1)">
console.debug(getRes()); </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">3</span>
console.debug(getRes()); <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">4</span>
console.debug(getRes()); <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">5</span>
</script></pre>
</div>
<p> </p>
<p><span style="font-size: 16px"><strong> 15、事件监听</strong></span></p>
<div class="cnblogs_code">
<pre><!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>事件监听测试</title>
<script type="text/javascript" src="jquery/jquery-1.11.2.js"></script>
<script type="text/javascript"><span style="color: rgba(0, 0, 0, 1)">
$(</span><span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(){
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">"click.qing":给这个点击事件取一个名叫qing</span>
$("#mybtn").on("click.qing",<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(){
console.debug(</span>"明天天晴!!!"<span style="color: rgba(0, 0, 0, 1)">);
})
$(</span>"#mybtn").on("click.feng",<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(){
console.debug(</span>"明天有风!!!"<span style="color: rgba(0, 0, 0, 1)">);
})
$(</span>"#mybtn").on("click.guang",<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(){
console.debug(</span>"明天逛街!!!"<span style="color: rgba(0, 0, 0, 1)">);
})
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">取消逛街这个方法</span>
$("#mybtn").off("click.guang"<span style="color: rgba(0, 0, 0, 1)">);
})
</span></script>
</head>
<body>
<button id="mybtn">点我有惊喜哦!!!</button>
</body>
</html></pre>
</div>
<p> </p>
<p><span style="font-size: 16px"><strong> 16、jQuery继承</strong></span></p>
<div class="cnblogs_code">
<pre><script type="text/javascript" src="jquery/jquery-1.11.2.js"></script>
<script type="text/javascript"><span style="color: rgba(0, 0, 0, 1)">
$(</span><span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(){
</span><span style="color: rgba(0, 0, 255, 1)">var</span> obj ={tel:"1836****000",sex:<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">};
</span><span style="color: rgba(0, 0, 255, 1)">var</span> obj1 = {name:"达康书记",age:100<span style="color: rgba(0, 0, 0, 1)">};
</span><span style="color: rgba(0, 0, 255, 1)">var</span> obj2 =<span style="color: rgba(0, 0, 0, 1)"> {};
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">把第一个对象的属性,交给第二个对象</span>
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">把后面的对象的属性,交给前面</span>
<span style="color: rgba(0, 0, 0, 1)"> $.extend(obj2,obj1,obj);
console.debug(obj2);
})
</span></script></pre>
</div>
<p> </p>
<p><span style="font-size: 16px"><strong> 17、jQuery自定义插件</strong></span></p>
<div class="cnblogs_code">
<pre><!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>自定义插件</title>
<script type="text/javascript" src="jquery/jquery-1.11.2.js"></script>
<script type="text/javascript"><span style="color: rgba(0, 0, 0, 1)">
$.fn.changeColor </span>= <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(){
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">.hover():鼠标移上来与移出去的事件</span>
<span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">.hover(
</span><span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(){
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">鼠标移上来,class属性上再添加一个名字:youdiv</span>
$(<span style="color: rgba(0, 0, 255, 1)">this</span>).addClass("youdiv"<span style="color: rgba(0, 0, 0, 1)">);
},
</span><span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(){
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">鼠标移出去,class属性上添加的名字删除</span>
$(<span style="color: rgba(0, 0, 255, 1)">this</span>).removeClass("youdiv"<span style="color: rgba(0, 0, 0, 1)">);
}
)
}
$(</span><span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(){
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">调用自定义的插件</span>
$("#mydiv"<span style="color: rgba(0, 0, 0, 1)">).changeColor();
})
</span></script>
<style type="text/css"><span style="color: rgba(0, 0, 0, 1)">
.mydiv{
width:100px;
height:100px;
background: red;
}
.youdiv{
background: blue;
}
</span></style>
</head>
<body>
<div id="mydiv" class="mydiv"></div>
</body>
</html></pre>
</div>
<p> </p><br><br>
来源:https://www.cnblogs.com/wanghj-15/p/10981636.html
頁:
[1]