草庐IT

$腾讯云原生

全部标签

JavaScript:原生 forEach 与原生 forEach

我注意到即使对于小数组,原生forEach有时也太慢了。看这个例子:vara=[],b=[];a[1234567]='foo';b[10]='bar';a.forEach(function(arg1,arg2){console.log(arg1,arg2);});//1//vsb.forEach(function(arg1,arg2){console.log(arg1,arg2);});//2在我的Chromium(25.0.1364.160Ubuntu12.04)中,第1行和第2行的执行时间是不同的数量级。我知道a的长度等于1234568,而b的长度等于10。但是原生的forEach

javascript - 使用更改观察者观察 Object.observe() 下的原生​​属性

现在Object.observe()在Chrome中默认打开,我遇到了很多情况,我想重用浏览器的内置属性(hidden,title,draggable),但*Changed观察者在属性改变时不再被调用。一个例子是隐藏:http://jsbin.com/jizikaje/1/edit(hiddenChanged()从未被调用)我目前的解决方法是使用attributeChanged()来观察属性的变化:attributeChanged:function(attrName,oldVal,newVal){//Cannotuse*Changedwatchersforthesenativeprop

javascript - cookie 是唯一的原生跨子域存储吗?

Cookie很棒,因为在website.com中写入的值可以在www.website.com中使用(www被认为是no-www的sudomain)。缺点是所有cookie值都与每个HTTP请求一起发送到服务器。因此,我正在寻找一种可用于Javascript的本地存储机制,该机制可以跨子域工作并且不会传输到服务器。这样的机制存在吗?LocalStorage不适用于跨子域和FlashCookies不会在iPhone上工作。 最佳答案 也许只是将website.com重定向到www.website.com或者反之亦然?这似乎是最简单的修复

javascript - es6 模块原生支持

我了解ES6模块规范,问题是关于它的支持。AFAIK,没有浏览器在native实现此功能(请参阅浏览器兼容性here)。对此有几个问题:ES6模块显然是ES6的一个特性。当我看kangaxcompatibilitytable,我根本看不到这样的行(对于ES6模块),这是为什么呢?毕竟这是ES6的特性...因此,现在使用ES6的唯一方法是使用构建工具,例如babel、browserify或任何其他替代工具,对吗?当原生支持模块时,如何从浏览器获取异步AJAX调用? 最佳答案 ES6modulesisanES6feature,obvio

javascript - JavaScript 原生的排序功能是如何实现的?

我们先来看一个例子。vareverything=[4,'Red','$200','white',7.4,12,true,0.3,false];console.log(everything.sort(function(a,b){returna-b;}));//[4,"Red","$200","white",false,0.3,true,7.4,12]我认为这很奇怪,即使我知道Number("Red")、Number("$200")和Number("white")比较时都给出NaN。为什么4在结果的第一个?我猜它与Array.prototype.sort的实现有关,那么我如何才能看到它的实

javascript - 如何纠正IE8原生json中的字符编码?

我正在使用带有unicode文本的json,但IE8原生json实现有问题。varstringified=JSON.stringify("สวัสดีolé");alert(stringified);使用json2.js或FireFox原生json,alert()字符串与原始字符串相同。另一方面,IE8返回Unicode值而不是原始文本\u0e2a\u0e27\u0e31\u0e2a\u0e14\u0e35ol\u00e9。有没有一种简单的方法可以使IE的行为与其他IE一样,或者将此字符串转换为它应该的样子?你会认为这是IE中的错误吗,我认为nativejson实现应该是json2.j

javascript - svg Canvas 内的原生按钮标签

我需要在SVGCanvas中放置一个按钮标签,有什么办法吗?(我正在使用拉斐尔JS)我知道我可以在svgCanvas内“绘制”一个按钮并编写onclick事件代码,但我想保留浏览器按钮的原生外观和感觉。谢谢你。 最佳答案 可以在SVG中使用HTML按钮,使用SVGforeignObject元素:http://www.w3.org/TR/SVG/extend.html#ForeignObjectElement规范中包含如何使用它的示例。不幸的是,我不确定如何最好地使用raphaeljs中的foreignObject。我相信foreig

javascript - 'catch' 在原生 Promise 链中是如何工作的?

在Chrome或Firefox的控制台选项卡上尝试这段代码varp=newPromise(function(resolve,reject){setTimeout(function(){reject(10);},1000)})p.then(function(res){console.log(1,'succ',res)}).catch(function(res){console.log(1,'err',res)}).then(function(res){console.log(2,'succ',res)}).catch(function(res){console.log(2,'err',r

javascript - 扩展原生 d3 组件(如 d3.svg.axis())的惯用方法是什么?

对于d3中的时间序列可视化,我想在轴上突出显示年份。我通过制作我自己的xAxis渲染器实现了这一点,它调用nativeaxis函数,然后实现我自己的自定义逻辑来格式化它渲染的刻度。我就是这样做的(seeworkingexampleonjsbin):xAxis=d3.svg.axis().scale(xScale)customXAxis=function(){xAxis(this);d3.selectAll('.tick',this).classed("year",isYear);};...xAxis.ticks(10);xAxisElement=canvas.append("g").c

javascript - 使用原生 JS 获取本地化的月份名称

可以这样做以使用nativejavascript获取本地化的完整月份名称.varobjDate=newDate("10/11/2009"),locale="en-us",month=objDate.toLocaleString(locale,{month:"long"});但这只能获取给定日期的月份数。我只想获得与月份编号对应的月份名称。例如,如果我执行getMonth(2),它将返回February。如何使用nativejavascript实现getMonth(没有像moment这样的库)? 最佳答案 你已经很接近了:varget