一些老手都不一定知道的JavaScript技巧


Posted in Javascript onMay 06, 2014

一些不太常用但强大的JavaScript小技巧,新手和老手js开发人员都不一定知道。

1、截断数组与数组长度

var arr1 = arr2 = [1, 2, 3];//改变 arr1
arr1 = []; // arr2则任然是 [1,2,3]

你会发现arr1用[]方法来清空不会影响arr2的值,假如要想让arr1改变后arr2跟着一起改变 ,则可以这样
 var arr1 = arr2 = [1, 2, 3];
arr1.length=0; //注意这一步 而不是 arr1=[]
alert(arr2)

这时 arr2也被清空了

2、数组合并

var  arr1 = [1,2,3];
var  arr2 = [4,5,6];
var arr3=arr1.concat(arr2);
alert(arr3)

arr3则变为
[1,2,3,4,5,6]

其实还可以用一种简单的办法,譬如使用
var  arr1 = [1,2,3];
var  arr2 = [4,5,6];
Array.prototype.push.apply(arr1,arr2);
alert(arr1)

这时arr1就变成了 1,2,3,4,5,6

3、浏览器特征检测

看一下代码,可以判定你的浏览器是否opera

if(window.opera){
    alert("是opera")
}else{
      alert("不是opera")
}

同样的你还可以这样
if("opera" in window){
     alert("是opera")
}else{
   alert("不是opera")
}

4、检查的对象是一个数组

var obj=[];
 if(Object.prototype.toString.call(obj)=="[object Array]")
   alert("是数组");
   else
    alert("不是数组");

同样的,你还可以判断该对象是否是字符串
var obj="fwe";
 if(Object.prototype.toString.call(obj)=="[object String]")
   alert("是字符串");
   else
    alert("不是字符串");
 
Javascript 相关文章推荐
网络之美 JavaScript中Get和Set访问器的实现代码
Sep 19 Javascript
分享27款非常棒的jQuery 表单插件
Mar 28 Javascript
使用node+vue.js实现SPA应用
Jan 28 Javascript
Bootstrap table的使用方法
Nov 02 Javascript
jQuery UI Draggable + Sortable 结合使用(实例讲解)
Sep 07 jQuery
基于jQuery实现无缝轮播与左右点击效果
May 13 jQuery
javascript少儿编程关于返回值的函数内容
May 27 Javascript
分享5个好用的javascript文件上传插件
Sep 16 Javascript
js中怎么判断两个字符串相等的实例
Jan 17 Javascript
详解关于表格合并span-method方法的补充(表格数据由后台动态返回)
May 21 Javascript
vue中解决拖拽改变存在iframe的div大小时卡顿问题
Jul 22 Javascript
JavaScript逻辑运算符相关总结
Sep 04 Javascript
jQuery中的$.ajax()方法应用
May 06 #Javascript
jquery判断元素是否隐藏的多种方法
May 06 #Javascript
JQuery调用WebServices的方法和4个实例
May 06 #Javascript
通过JQuery将DIV的滚动条滚动到指定的位置方便自动定位
May 05 #Javascript
JQuery以JSON方式提交数据到服务端示例代码
May 05 #Javascript
使用jQuery重置(reset)表单的方法
May 05 #Javascript
jQuery实现回车键(Enter)切换文本框焦点的代码实例
May 05 #Javascript
You might like
spl_autoload_register与autoload的区别详解
2013/06/03 PHP
php基于mcrypt的加密解密实例
2014/10/27 PHP
一个简单的php MVC留言本实例代码(必看篇)
2016/09/22 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解
2019/04/09 PHP
JavaScript聚焦于第一个字段的代码
2010/10/15 Javascript
开发插件的两个方法jquery.fn.extend与jquery.extend
2013/11/21 Javascript
jquery遍历select元素(实例讲解)
2013/12/31 Javascript
thinkphp中常用的系统常量和系统变量
2014/03/05 Javascript
Node.js node-schedule定时任务隔多少分钟执行一次的方法
2015/02/10 Javascript
JavaScript中的getMilliseconds()方法使用详解
2015/06/10 Javascript
js实现TAB切换对应不同颜色的代码
2015/08/31 Javascript
jquery实现树形菜单完整代码
2015/12/29 Javascript
简述jQuery ajax的执行顺序
2016/01/05 Javascript
JS实现页面中所有img对象添加onclick事件及新窗口查看图片的方法
2016/12/27 Javascript
微信JSAPI支付操作需要注意的细节
2017/01/10 Javascript
详解React开发中使用require.ensure()按需加载ES6组件
2017/05/12 Javascript
bootstrap 点击空白处popover弹出框隐藏实例
2018/01/24 Javascript
ES6与CommonJS中的模块处理的区别
2018/06/13 Javascript
小程序实现选择题选择效果
2018/11/04 Javascript
jQuery创建折叠式菜单
2019/06/15 jQuery
解决layer 动态加载select 失效的问题
2019/09/18 Javascript
Js数组扁平化实现方法代码总汇
2020/11/11 Javascript
如何在vue中使用video.js播放m3u8格式的视频
2021/02/01 Vue.js
[05:06]2017亚洲邀请赛DAC回顾片
2017/04/19 DOTA
Python 网络编程起步(Socket发送消息)
2008/09/06 Python
在Python中调用ggplot的三种方法
2015/04/08 Python
分享6个隐藏的python功能
2017/12/07 Python
对Python中创建进程的两种方式以及进程池详解
2019/01/14 Python
Django项目创建到启动详解(最全最详细)
2019/09/07 Python
python3 os进行嵌套操作的实例讲解
2020/11/19 Python
Lands’ End官网:经典的美国生活方式品牌
2016/08/14 全球购物
英国优质鞋类专家:Robinson’s Shoes
2017/12/08 全球购物
汽车检测与维修应届毕业生求职信
2013/10/19 职场文书
怀念母亲教学反思
2014/04/28 职场文书
小学英语教师研修感悟
2015/11/18 职场文书
Win2008系统搭建DHCP服务器
2022/06/25 Servers