在JavaScript中,想要判断某个对象值属于哪种内置类型,最靠谱的做法就是通过Object.prototype.toString方法.var arr = []; console.log(Object.prototype.toString.call(arr)) //"[object Array]"本文要讲的就是,toString方法是如何做到这一点的,原理是什么.ECMAScript 3在ES3中,Object.prototype.toString方法的规范如下:15.2.4.2 Object.prototype.toString()在toString方法被调用时,会执行下面的操作步骤:1. 获取this对象的[[Cl...
/* MS 民生电商公共方法*/window.MS = window.MS || {};//判断平台类型和特性的属性;(function(){ var userAgent = navigator.userAgent || ‘‘; MS.platform = MS.platform || {}; //判断是否为android平台 MS.platform.isAndroid = /android/i.test( userAgent ); //判断是否为Winphone平台 MS.platform.isWinphone = /windows phone/i.test( userAgent ); //判断是否为ipad平台 MS.platform.isIpad...
方法一:非文本框、文本域的选中内容方法<!Doctype html> <html><head><script type="text/javascript" src=‘http://libs.baidu.com/jquery/2.0.0/jquery.js‘></script><body><div onclick="SelectText(‘myDiv‘)">点击选中</div><div id="myDiv">测试选中内容<p>eee</p>测试</div><script>function SelectText(element) {var browserName=navigator.userAgent.toLowerCase(); var text = document.getElementById(element);i...
for-in循环应该用在非数组对象的遍历上,使用for-in进行循环也被称为“枚举”。 对于数组 ,迭代出来的是数组元素 但不推荐,因为不能保证顺序,而且如果在Array的原型上添加了属性,这个属性也会被遍历出来,所以 最好数组使用正常的for循环,对象使用for-in循环 对于对象 ,迭代出来的是对象的属性; var obj = { "key1":"value1", "key2":"value2", "key3":"value3" }; fu...
1)普通函数实现function cloneObject(obj) {if (obj === null || typeof obj !== ‘object‘) {return obj;}var temp = obj.constructor(); // give temp the original obj‘s constructorfor (var key in obj) {temp[key] = cloneObject(obj[key]);}return temp; }var bob = {name: "Bob",age: 32};var bill = cloneObject(bob);bill.name = "Bill";console.log(bob);console.log(bill);2)通过json方法实现var bob = {name: "Bob...
ことの起こりWebの画面では、新規入力をしようとすると、別ウィンドウ=子ウィンドウが開いて入力し、登録ボタンを押すと、子ウィンドウが閉じる仕組みがある。子ウィンドウが閉じるだけなら問題ないが、一覧表があって、子ウィンドウが閉じたら、登録された内容を反映したいときがある。 子ウィンドウが閉じるときに、JavaScriptでwindow.opener.location.reload(); window.close(); とすれば、 親ウィンドウは再読込みされて、子...
使用方法简单,只需要放在你的 utils.js 工具文件中,直接export const 加上下面封装方法,在别的文件中使用 {方法1,方法2,方法3...}引用后直接使用即可。01、输入一个值、返回其数据类型type = para =>{return Object.toString.call(para).slice(8,-1)}02、冒泡排序升序 bubbleAsSort()bubbleAsSort = arr =>{for(let i=0;i<arr.length -1;i++ ){for(let j=0;j<arr.length -1 -i;j++){if(arr[i] >arr[j + i]){let temp = arr [j...
原来一直以为只要设置javascript的document.cookie对象就能简单的在浏览器端设置和删除cookie值,网上很多文章也是这么教的,但是最近发现简单的设置javascript的document.cookie的值无法完全做到删除或更改cookie。偶然发现了一篇文章给出了正确的方法,这里贴出来。 使用JavaScript清理Cookie首先要找到该Cookie对应的Name对应的值,然后设置其为过期: 找到Cookie有下面方法:function getCookie2(name){var arr = document.coo...
1.sort()方法概述 sort() 方法用于对数组的元素进行排序。 如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点, 首先应把数组的元素都转换成字符串(如有必要),以便进行比较。 如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。 比较函数应该具有两个参数 a 和...
function trim(str){//创建空格对象var space = new String(" ");/*str = trimLeft(str,space);str = trimRight(str,space);*/return trimRight( trimLeft(str,space),space); }//去除左空格function trimLeft(str,space){var i = 0,j = str.length;while(i < j && space.indexOf(str.charAt(i))!=-1){i++;}return str.substring(i,str.length); }//去除右空格function trimRight(str,space){var i = 0,j = str.length;while(j...
1 字符方法 charAt():接收一个参数,返回给定位置的字符 charCodeAt():接收一个参数,返回指定位置字符的字符编码var str = "hello world"; alert(str.charAt(1)); //e alert(str.chatCodeAt(1)) //101 2 字符串操作方法 concat():将一个或多个字符串拼接起来。 string.concat(str) slice(start,[stop]):接收一个或两个参数,起始位置和结束位置,返回被操作字符串的一个子字符串 substr(start,n):接...
// pop() 方法从数组中删除最后一个元素var fruits = ["Banana", "Orange", "Apple", "Mango"]; // 被删除的值赋值给xvar x = fruits.pop(); console.log(fruits,x) //打印删除元素后的数组和被删除的元素 //输出:["Banana", "Orange", "Apple"] "Mango"// push()方法 向数组添加新元素的最佳方法var fruits = ["Banana", "Orange", "Apple", "Mango"]; // 注意:这里的x返回的是新数组的长度,而不是返回添加的元素var x = fr...
//平台、设备和操作系统var system = { win: false, mac: false, xll: false, ipad: false};//检测平台var p = navigator.platform;system.win = p.indexOf("Win") == 0;system.mac = p.indexOf("Mac") == 0;system.x11 = (p == "X11") || (p.indexOf("Linux") == 0);system.ipad = (navigator.userAgent.match(/iPad/i) != null) ? true : false;//跳转语句,如果是手机访问就自动跳转到页面if (system.win || system...
----------------------------------js去空格--------------------------- 去除字符串左右两端的空格,在vbscript里面可以轻松地使用 trim、ltrim 或 rtrim,但在js中却没有这3个内置方法,需要手工编写。下面的实现方法是用到了正则表达式,效率不错,并把这三个方法加入String对象的内置方法中去。 写成类的方法格式如下:(str.trim();) <script language="javascript"> String.prototype.trim=function(){ ...
今天给大家讲讲javascript基础教程中的javascript面向对象的技术,这一次我们深入的学习一下JavaScrip基于t面向对象之创建对象,关于面向对象的一些术语这里就不给大家介绍了,不了解的朋友可以自行去查看。 使用预定义对象只是面向对象语言的能力的一部分,它真正强大之处在于能够创建自己专用的对象。ECMAScript 拥有很多创建对象的方法。 一原始方式 因为对象的属性可以在对象创建后动态定义,所有许多开发者...