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 ...
随机推荐
- TopFreeTheme精选免费模板【20130703】
今天我们给大家分享13个最新的主题模板,5款WordPress主题,5款Joomla模板,3款OpenCart主题. BowThemes – BT Folio v1.0 Template for Jo ...
- xargs 简单功能
之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了xargs命令,例如: find /sbin -perm +700 |ls -l 这个命 ...
- 【Hadoop代码笔记】Hadoop作业提交之Job初始化
一.概要描述 在上一篇博文中主要描述了JobTracker和其几个服务(或功能)模块的接收到提交的job后的一些处理.其中很重要的一部分就作业的初始化.因为代码片段图的表达问题,本应该在上篇描述的内容 ...
- 【FFT】专题总结
学了若干天终于学(bei)会了传说中的法法塔 感觉也没那么难用嘛 fft快速傅里叶变换 在大表课件上写就是解决高精乘的工具 其实很有理有据 fft就是用复数的折半引理优化两个多项式相乘的高端东西 他能 ...
- HDU ACM 1134 Game of Connections / 1130 How Many Trees?(卡特兰数)
[题目链接]http://acm.hdu.edu.cn/showproblem.php?pid=1134 [解题背景]这题不会做,自己推公式推了一段时间,将n=3和n=4的情况列出来了,只发现第n项与 ...
- 【Excel】Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046}:
[Excel]Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-0000000000 ...
- phonegap 新窗口 WebView
自定义WebView窗口打开 import com.ap.work.QuickWeb public class QuickPlugin extends CordovaPlugin { /** * 新开 ...
- [翻译]创建ASP.NET WebApi RESTful 服务(7)
实现资源分页 本章我们将介绍几种不同的结果集分页方式,实现手工分页,然后将Response通过两个不同的方式进行格式化(通过Response的Envelop元数据或header). 大家都知道一次查询 ...
- 异步编程之Generator(1)——领略魅力
异步编程系列教程: (翻译)异步编程之Promise(1)--初见魅力 异步编程之Promise(2):探究原理 异步编程之Promise(3):拓展进阶 异步编程之Generator(1)--领略魅 ...
- NHibernate的简单例子
NHibernate的简单例子 @(编程) [TOC] 因为项目需求,搭了一个NHibernate的例子,中间遇到了一些问题,通过各种方法解决了,在这里记录一下最后的结果. 1. 需要的dll Com ...