js一些小题(二)
*******************************************************************
一个全局下的函数:
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一些小题(二)的更多相关文章
- 常让人误解的一道js小题
一道小题引发的深思 今天无意中看到一个js笔试题,不由得想起初学js那会被各种题目狂虐的心酸,虽说现在也会被笔试题所虐,但毕竟比之前好了很多,下面就是我的个人理解,欢迎拍砖.指正: var x = 1 ...
- 一些js小题(一)
一些js小题,掌握这些对于一些常见的面试.笔试题应该很有帮助: var a=10; function aa(){ alert(a); } function bb(){ aa(); } bb();//1 ...
- jquery.qrcode.min.js(支持中文转化二维码)
详情请看:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/jqueryqrcodeminjs/ 今天还是要讲一下关于二维码的知识,前 ...
- 关于理解python类的小题
今天看了python部落翻译的一篇<一道python类的小题>文章,感觉挺有启发性,记录下来: print('A') class Person(object): print('B') de ...
- Vue小项目二手书商城:(二)axios前后端数据交互
实现内容: 写路由接口(express) axios取数据 一.写接口 1.我们要在前端取到后端的数据(之前写的data.json)可以用vue-resourse或者用axios,在vue2之后官方就 ...
- Vue小项目二手书商城:(一)准备工作、组件和路由
本项目基于vue2.5.2,与低版本部分不同之处会在(五)参考资料中提出 完整程序:https://github.com/M-M-Monica/bukesi 实现内容: 资源准备(mock数据) 组件 ...
- node 无脑生成小程序二维码图
RT 新建createwxaqrcode.js: const request = require('request') const fs = require('fs') // eg:生成购物车列表圆形 ...
- 关于SQL的几道小题详解
关于SQL的几道小题详解 当我们拿到题目的时候,并不是急于作答,那样会得不偿失的,而是分析思路,采用什么方法,达到什么目的,还要思考有没有简单的方法或者通用的方法等等,这样才会达到以一当十的效果,这样 ...
- 小程序二维码生成接口API
获取小程序码 我们推荐生成并使用小程序码,它具有更好的辨识度.目前有两个接口可以生成小程序码,开发者可以根据自己的需要选择合适的接口. 接口A: 适用于需要的码数量较少的业务场景 接口地址: http ...
随机推荐
- PL/SQL异常
CASE_NOT_FOUND CASE selector WHEN selector_value_1 THEN statements_1 WHEN selector_value_2 THEN stat ...
- 使用sp_addextendedproperty添加描述信息
-- For table EXECUTE sp_addextendedproperty N'MS_Description', '描述内容', N'user', N'dbo', N'table', N' ...
- 【转】ORATOP工具使用说明
文章转自:http://lintzyuan.blogspot.jp/2014/07/oratop.html ORATOP 前言:隨著PC Server的規格及速度愈來愈快,大多數的公司摒棄大型主機 ...
- Knockout 新版应用开发教程之Observable Arrays
假如你想到侦测和相应一个对象的改变,假如你想要侦测和响应一一组合集的改变,就要用observableArray 在许多场景都是很有用的,比如你要在UI上需要显示/编辑的一个列表数据集合,然后对集合进行 ...
- java中图片文件的传输及显示(Socket以及ServerSocket演示)
//客户端部分 package testSix; import java.awt.Graphics; import java.io.IOException; import java.io.InputS ...
- php -- php读取sqlserver2005的数据实现分页查询
--php5.2 --sqlserver2005 php读取sqlserver多条数据时,有时因为数据太多,需要进行分页查询. 例如,按价格的顺序,读取同一类型的产品的第30到第48条记录 $star ...
- linux 多台 主机的免登录ssh的配置
1.首先检查 有没有安装ssh rpm-qa | grep ssh 如果没有安装 yum install ssh 2.在每一台机器上执行 ssh-keygen -t rsa 会在root/.ssh ...
- PHP __DIR__, __FILE__, __FUNCTION__, __CLASS__, __METHOD__, __LINE__, __NAMESPACE__
PHP has large number of predefined constants. This HOWTO will present the seven most important, most ...
- Tools - Notepad++
NotePad++ https://notepad-plus-plus.org/ 修改主题 依次点击设置---语言格式设置---选择主题,在显示界面中修改相关设置(背景色.前景色.字体等). 双文本横 ...
- intellij 调试方法
intellij 调试方法 转自 http://www.th7.cn/Program/net/201410/296492.shtml