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

一个全局下的函数:

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. UML2

    UML中有3种构造块:事物.关系和图,事物是对模型中最具有代表性的成分的抽象:关系是把事物结合在一起:图聚集了相关的的事物.具体关系图标如下 说明:构件事物是名词,是模型的静态部分.行为事物是动态部分 ...

  2. php网页切图/js切图

    PhantomJS抓取网站页面信息以及网站截图 http://phantomjs.org/download.html PHP imagegrabscreen和imagegrabwindow(截取网站缩 ...

  3. java nio 网络框架

    https://github.com/solq360/common 主要运行在android 平台 解决自动化编/解码,等等.. 模块 解决问题/实现处理 备注 负责人 进度 录音播放 AudioRe ...

  4. JavaScript备忘录(3)——正则表达式

    正则表达式是用来进行字符串匹配的. 定义正则表达式有两种方法:/wor/或者new RegExp("wor"). 使用方法 在JS中,使用正则表达式的方法有: 字符串的search ...

  5. Apk去签名校验详解

    某些apk为了防止重打包,使用了签名校验.所以在破解的时候我们需要破解签名校验.在定位签名校验位置时常用的关键词有sign,signature,checkSign,signCheck,getPacka ...

  6. eclipse luna 安装 Hadoop 1.2.1 eclipse-plugin

    博主最近学习Hadoop 1.2.1,从多个搜索引擎的搜索结果当中汇合得出本文Hadoop 1.2.1 Eclipse-plugin安装过程介绍,如果你是从网上下载hadoop-eclipse-plu ...

  7. 【转载】Linux下编辑生成.mo文件

    转载自:http://www.hackbase.com/tech/2012-02-27/65972.html 编辑生成.mo文件 我们在弄网站的时候很可能会接触到.mo和.po文件..po文件是GNU ...

  8. Vue基础---->VueJS的使用(二)

    组件(Component)是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能.今天我们就来学习一 ...

  9. cocos2dx-3.x 导出自定义类到 lua 过程详解

    转载请注明出处:http://www.cnblogs.com/Ray1024 一.简介 最近正在学习cocos2d中的lua游戏开发,因为lua开发的热更新特性,大家开发游戏好像都会优先选择lua作为 ...

  10. 学习android开发笔记

    最近重点看了几个android工程的源代码,有几点疑问 1:为什么android客户端游戏要开启n个线程,而且通常每个线程的操作只有i++: 2:为什么很多列表在游戏逻辑和绘制逻辑里没有做同步: 3: ...