js代码的一些小技巧
1. 数组中通过赋值语句来改变值
var a = 1;
var msg = ["value0","value1"];
for(var i = 0;i<10;i++){
alert(msg[a = a == 1 ? 0 : 1]);// 0,1,0,1…
}
能实现切换两个不同的值。 msg[a=1] 相当于 msg[1], a=1,同时执行赋值和取值
2.类型转换
一般把"123"转成number类型,都是parseInt("123");但是也可以这样:
var a= "123";//string 10
var a1 = parseInt(a,10);//number 10
var a2 = +a;//number 10
var a3 = a*1;//number 10 var a = 0;
alert(!!a);//强制转换为boolean
3. onclick和 href
<a href="go.html" onclick="doSomething();"></a>
如果跳转之前做判断的话,传统的写法:
function doSomething(){
var res = confirm("u want go?");
if (res) {
window.location.href = "go.html";
};
}
dosomething返回的是false,则不会跳转页面,so we can achieve it like this:
function doSomething(){
return confirm("u want live?");
}
4.获取数组中最大最小值
通常,我们给Array做原型拓展,如下:
if(typeof(Array.prototype['max']) == 'undefined'){
Array.prototype.max = function(){
var length = this.length;
if(length){
var max = this[0];
for(var i=0;i<length;i++){
if(this[i] > max){
max = this[i];
}
}
return max;
}else{
// 空数组
} }
} alert([2,3,19,223].max());//223
我们知道javascript原生的Math对象提供了比较大小的方法,
alert(Math.max(1,4,2,919,222)); //
同样的 ,我们知道apply方法可以改变this的值,并将参数与数组形式传递,所以可以巧妙的运用:
if(typeof(Array.prototype['max']) == 'undefined'){
Array.prototype.max = function(){
var length = this.length;
if(length){
return Math.max.apply({},this);
}else{
// 空数组
} }
}
或者
Array.prototype['max'] = Array.prototype['max'] || function(){
var length = this.length;
if(length){
var max = this[0];
for(var i=0;i<length;i++){
if(this[i] > max){
max = this[i];
}
}
return max;
}else{
// 空数组
}
}
5. javascript 检测对象类型
/* 检测对象类型
* @param: obj {JavaScript Object}
* @param: type {String} 以大写开头的 JS 类型名
* @return: {Boolean}
*/
function is(obj, type) {
return Object.prototype.toString.call(obj).slice(8, -1) === type;
}
is('sofish', 'String') // true
is(null, 'Null') // true
is(new Set(), 'Set') // true
6.正则表达式与replace方法
str.replace(/正则/,'替换的内容'|| function(match){/* todo */})
var source = '<tr><td>{$id}</td><td>{$name}</td></tr>';
console.log(source.replace(/{\$id}/g,'10'));
console.log(source.replace(/[<>&]/g,function(items){
switch(items){
case '<' :
return '<';
case '>' :
return '>';
}
}));
7.用js实现随机选取10–100之间的10个数字,存入一个数组,并排序
js代码的一些小技巧的更多相关文章
- 【js】中的小技巧
本文主要介绍一些JS中用到的小技巧 1. 类型强制转换 1.1 string强制转换为数字 可以用*1来转化为数字(实际上是调用.valueOf方法) 然后使用Number.isNaN来判断是否为 ...
- JS、JQ相关小技巧积攒
JS.JQ相关小技巧积攒,以备不时之需. 1.js 获取时间差:时间戳相减.new Date().getTime() 获得毫秒数,除以(1000*60*60*24) 获得天数. 2.重定向操作:页面 ...
- JS前端下载文本文件小技巧:1、download属性;2、借助Blob转换成二进制下载
一.HTML download 与文件下载 如果希望在前端侧直接触发某些资源的下载,最方便快捷的方法就是使用HTML5原生的download属性,例如: <a href="large. ...
- 泛微关于js设计的一些小技巧
1.关于泛微流程的js设计 泛微oa可以插入javascript可以diy自己想要的表单页面前端功能.如果有前端开发经验,或者熟练使用jQuery的话,这将变得非常容易!同时泛微OA内部有很多库,包括 ...
- angular源码分析:angular中各种常用函数,比较省代码的各种小技巧
angular的工具函数 在angular的API文档中,在最前面就是讲的就是angular的工具函数,下面列出来 angular.bind //用户将函数和对象绑定在一起,返回一个新的函数 angu ...
- 30段极简Python代码:这些小技巧你都Get了么
学 Python 怎样才最快,当然是实战各种小项目,只有自己去想与写,才记得住规则.本文是 30 个极简任务,初学者可以尝试着自己实现:本文同样也是 30 段代码,Python 开发者也可以看看是不是 ...
- 让你的JS更优雅的小技巧
首先,看一个非常不优雅的例子: 看到这段代码,虽然代码很短,但是一眼看上去就不想再看了,也就是没什么可读性.这段代码,没有封装,随意定义一个变量都是全局变量,这样在多人开发或者是大型开发中,极其容易造 ...
- js 中的一些小技巧
js 数字操作: 1.1 取整: 取整有很多方法如: parseInt(a,10); Math.floor(a); a>>0; ~~a; a|0; 前面2种是经常用到的,后面3中算是比较偏 ...
- 写Java代码的一些小技巧
写Java代码有三年多了,遇到过很多坑,也有一些小小的心得.特地分享出来供各位学习交流.这些技巧主要涉及谷歌Guava工具类的使用.Java 8新特性的使用.DSL风格开发.代码封装等技巧. 一.nu ...
随机推荐
- 文本框的onchange事件,如何兼容各大浏览器
在项目中经常会遇到对用户输入的数据进行实时校验,而不是等文本框失去焦点或用户手动点击校验. 首先分析下在哪些情况下文本框会产生change事件. 1.用户通过键盘入正常字符时: 2.用户通过键盘输入非 ...
- 一起刷LeetCode5-Longest Palindromic Substring
发现自己原来掌握的一下算法,都忘掉了,啊啊啊 ----------------------------------------------------------------------------- ...
- Thrift框架介绍
1.前言 Thrift是一个跨语言的服务部署框架,最初由Facebook于2007年开发,2008年进入Apache开源项目.Thrift通过一个中间语言(IDL, 接口定义语言)来定义RPC的接口和 ...
- 理解OAuth 2.0 -摘自网络
OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版. 本文对OA ...
- BOX2D测试
; ; Box2DTestLayer = cc.Layer.extend({ world:null, //GLESDebugDraw *m_debugDraw; ctor:function () { ...
- 第一百九十六天 how can I 坚持
老妈邮的咸菜到了,美味啊,买不到,哈哈. 以后要勤给鱼换水啊,10天不换,水都臭了,拒绝懒惰. 明天要回济南了,刘松结婚,估计又没法发博客了. 两条鱼,一条罗娜,一条我,哈哈. 睡觉.
- IE8-模拟script onerror
利用VBScript 检测,有副作用,慎用! var loadScript = function () { var DOC = document, HEAD = document.getElement ...
- HDU2680 Choose the best route 最短路 分类: ACM 2015-03-18 23:30 37人阅读 评论(0) 收藏
Choose the best route Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...
- Azure linux centos 默认登陆账号是什么?
什么?刚创建的linux虚拟机账号忘记了? 不要急,往下看!! Azure为我们考虑好了,默认创建centos 系统时,默认账号是azureuser,这个账号是非root权限的. 很多人在创建的时候容 ...
- linux下find查找命令用法
Linux下find命令在目录结构中搜索文件,并执行指定的操作.Linux下find命令提供了相当多的查找条件,功能很强大.由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时 ...