一些老手都不一定知道的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 相关文章推荐
基于jQuery的消息提示插件 DivAlert之旅(二)
Apr 01 Javascript
input输入框的自动匹配(原生代码)
Mar 19 Javascript
jquery动态改变onclick属性导致失效的问题解决方法
Dec 04 Javascript
node.js中的fs.readFileSync方法使用说明
Dec 15 Javascript
jQuery实现定位滚动条位置
Aug 05 Javascript
详解AngularJS 路由 resolve用法
Apr 24 Javascript
Javascript实现找不同色块的游戏
Jul 17 Javascript
Angular通过angular-cli来搭建web前端项目的方法
Jul 27 Javascript
jquery 实现拖动文件上传加载进度条功能
Mar 18 jQuery
Vue 样式绑定的实现方法
Jan 15 Javascript
如何解决vue在ios微信"复制链接"功能问题
Mar 26 Javascript
JS前端使用canvas实现扩展物体类和事件派发
Aug 05 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
DC这些乐高系列动画电影你看过几部?
2020/04/09 欧美动漫
PHP操作文件的一些基本函数使用示例
2014/11/18 PHP
PHP中的命名空间详细介绍
2015/07/02 PHP
php基于websocket搭建简易聊天室实践
2016/10/24 PHP
通过event对象的fromElement属性解决热区设置主实体的一个bug
2008/12/22 Javascript
Javascript中的var_dump函数实现代码
2009/09/07 Javascript
javascript nextSibling 与 getNextElement(node) 使用介绍
2011/10/13 Javascript
解析window.open的使用方法总结
2013/06/19 Javascript
关于js遍历表格的实例
2013/07/10 Javascript
Jquery的hover方法让鼠标经过li时背景变色
2013/09/06 Javascript
js 点击页面其他地方关闭弹出层(示例代码)
2013/12/24 Javascript
jquery修改网页背景颜色通过css方法实现
2014/06/06 Javascript
Js的Array数组对象详解
2016/02/22 Javascript
jQuery插件实现可输入和自动匹配的下拉框
2016/10/24 Javascript
详解Vue路由钩子及应用场景(小结)
2017/11/07 Javascript
vant(ZanUi)结合async-validator实现表单验证的方法
2018/12/06 Javascript
JavaScript实现的3D旋转魔方动画效果实例代码
2019/07/31 Javascript
微信小程序全局变量GLOBALDATA的定义和调用过程解析
2019/09/23 Javascript
基于axios 的responseType类型的设置方法
2019/10/29 Javascript
JS模拟实现京东快递单号查询
2020/11/30 Javascript
浅谈python多线程和队列管理shell程序
2015/08/04 Python
python爬取王者荣耀全皮肤的简单实现代码
2020/01/31 Python
Python机器学习工具scikit-learn的使用笔记
2021/01/28 Python
详解HTML5之pushstate、popstate操作history,无刷新改变当前url
2017/03/15 HTML / CSS
html5 移动端视频video的android兼容(去除播放控件、全屏)
2020/03/26 HTML / CSS
Fox Racing英国官网:越野摩托车和山地自行车服装
2020/02/26 全球购物
逻辑链路控制协议
2016/10/01 面试题
协议书怎么写
2014/04/21 职场文书
网络技术专业求职信
2014/07/13 职场文书
运输企业安全生产责任书
2014/07/28 职场文书
见习报告格式要求
2014/11/04 职场文书
2015年毕业实习工作总结
2015/05/29 职场文书
前端学习——JavaScript原生实现购物车案例
2021/03/31 Javascript
80行代码写一个Webpack插件并发布到npm
2021/05/24 Javascript
MySQL定时备份数据库(全库备份)的实现
2021/09/25 MySQL
vue二维数组循环嵌套方式 循环数组、循环嵌套数组
2022/04/24 Vue.js