*******************************************************************

一个全局下的函数:

function test()

{

alert(this);

}

当直接调用时test(); 会弹出object window因为很明显这里的this代表全局.

在页面添加一个div元素,id为d1:

var odiv=document.getElementById('d1');

odiv.onclick=test;  //此时this指向div这是元素。

注意下面代码:

odiv.onclick=function(){

test();

};

此时结果依然弹出object window,this依然指向全局。

*******************************************************************

看下面代码:

for(var i=0;i<5;i++)

{

setTimeout(function(){

alert(i);

},1000);

}



你以为会依次弹出0,1,2,3,4?那就错啦,该程序上来就会弹出5,然后连续弹出5次5。

以下代码才会弹出0,1,2,3,4

for(var i=0;i<5;i++)

{

alert(i);

}

***********************************************************************

看下列代码:

var obj={};

var newobj={

m1:'mmm1',

m2:'mmm2'

};

for(var e in newobj)

{

obj[e]=function(){

alert(newobj[e]);

}

}

alert(obj==newobj);    //false

obj.m1();          //mmm2

obj.m2();           //mmm2 



执行结果为false,mmm2,mmm2

****************************************************************************

随机打乱数组:

首先要介绍一下关于数组的sort()排序:

sort()排序并不能实现数值意义上的大小排序,它是按照asc码进行的排序,所以对于11和2两个数字来说,sort()排序会认为2大于11,解决方法就是引入一个函数

function compare(a,b){

return a-b;

}

他的是这样工作的。每次从数组里面挑选两个数 进行运算。

如果传入的参数是0 两个数位置不变。

如果参数小于0 就交换位置

如果参数大于0就不交换位置

接下来用刚才的较大数字跟下一个进行比较。这样循环进行排序。

这样要对数组arr排序时 :arr.sort(compare);即可。

由此思想可解决打乱数组的问题:

function test(a,b){

return Math.random()>0.5?1:-1;  //这样会随机的出现1或-1

}

这样arr.sort(test);就能打乱数组。

不行啦,好困啊,从编辑器里暂时先找到这几题贴上来,后续还有,先躺下,明天继续努力,坚持每天写一篇,哪怕知识点再小!坚持!

js一些小题(二)的更多相关文章

  1. 常让人误解的一道js小题

    一道小题引发的深思 今天无意中看到一个js笔试题,不由得想起初学js那会被各种题目狂虐的心酸,虽说现在也会被笔试题所虐,但毕竟比之前好了很多,下面就是我的个人理解,欢迎拍砖.指正: var x = 1 ...

  2. 一些js小题(一)

    一些js小题,掌握这些对于一些常见的面试.笔试题应该很有帮助: var a=10; function aa(){ alert(a); } function bb(){ aa(); } bb();//1 ...

  3. jquery.qrcode.min.js(支持中文转化二维码)

    详情请看:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/jqueryqrcodeminjs/ 今天还是要讲一下关于二维码的知识,前 ...

  4. 关于理解python类的小题

    今天看了python部落翻译的一篇<一道python类的小题>文章,感觉挺有启发性,记录下来: print('A') class Person(object): print('B') de ...

  5. Vue小项目二手书商城:(二)axios前后端数据交互

    实现内容: 写路由接口(express) axios取数据 一.写接口 1.我们要在前端取到后端的数据(之前写的data.json)可以用vue-resourse或者用axios,在vue2之后官方就 ...

  6. Vue小项目二手书商城:(一)准备工作、组件和路由

    本项目基于vue2.5.2,与低版本部分不同之处会在(五)参考资料中提出 完整程序:https://github.com/M-M-Monica/bukesi 实现内容: 资源准备(mock数据) 组件 ...

  7. node 无脑生成小程序二维码图

    RT 新建createwxaqrcode.js: const request = require('request') const fs = require('fs') // eg:生成购物车列表圆形 ...

  8. 关于SQL的几道小题详解

    关于SQL的几道小题详解 当我们拿到题目的时候,并不是急于作答,那样会得不偿失的,而是分析思路,采用什么方法,达到什么目的,还要思考有没有简单的方法或者通用的方法等等,这样才会达到以一当十的效果,这样 ...

  9. 小程序二维码生成接口API

    获取小程序码 我们推荐生成并使用小程序码,它具有更好的辨识度.目前有两个接口可以生成小程序码,开发者可以根据自己的需要选择合适的接口. 接口A: 适用于需要的码数量较少的业务场景 接口地址: http ...

随机推荐

  1. square开源vim,tmux配置在linux上使用

    首先安装需要的软件 apt-get install vim ack-grep git tmux gnome-terminal ctags xclip silversearcher-ag 这里tmux需 ...

  2. java之对象转型2

    public class TestCasting2{ public static void main(String args[]){ TestCasting2 test2= new TestCasti ...

  3. ios 实现推送消息

      iOS消息推送的工作机制可以简单的用下图来概括: Provider是指某个iPhone软件的Push服务器,APNS是Apple Push Notification Service的缩写,是苹果的 ...

  4. Go语言TCP/UDP Socket编程

    1. TCP编程 TCPClient // TCPClient project main.go package main import ( "fmt" "net" ...

  5. 【转】基于CXF Java 搭建Web Service (Restful Web Service与基于SOAP的Web Service混合方案)

    转载:http://www.cnblogs.com/windwithlife/archive/2013/03/03/2942157.html 一,选择一个合适的,Web开发环境: 我选择的是Eclip ...

  6. c# 时间戳转换为Datetime类型的时间

    private static DateTime GetConvertTime(long ltime) { DateTime dt_time=new DateTime(1970,1,1,8,0,0,0) ...

  7. python进阶学习笔记(四)--多线程thread

    在使用多线程之前,我们首页要理解什么是进程和线程. 什么是进程? 计算机程序只不过是磁盘中可执行的,二进制(或其它类型)的数据.它们只有在被读取到内存中,被操作系统调用的时候才开始它们的生命期.进程( ...

  8. MySQL安全问题(防范必知)

    对于任何一种数据库来说,安全问题都是非常重要的.如果数据库出现安全漏洞,轻则数据被窃取,重则数据被破坏,这些后果对于一些重要的数据库都是非常严重的.下面来从操作系统和数据库两个层对MySQL的安全问题 ...

  9. python 在sublime 中的配置

    首先可以先装package control 方法——按ctrl+`,然后在命令行里复制粘贴以下代码, import urllib2,os;pf='Package Control.sublime-pac ...

  10. springMVC基础

    controllers包写控制器: @Controller @RequestMapping(value="/utils") public class UploadControlle ...