草庐IT

javascript - 为什么我的 Speech Synthesis API 语音在功能运行超过 1 次时会发生变化?

我一直在使用Chrome(33及更高版本)中的新语音合成API来制作基于网络的通信辅助工具。我希望用户能够改变男性和女性之间的声音,API允许我这样做。但是,当页面首次加载和函数第一次运行时(从onclick事件),它使用默认的女声。然后任何时候运行它,它都会使用我想要使用的男声。我怎样才能让男声也第一次跑?这是调用javascript的按钮:这里是被调用的speakPhrase函数:functionspeakPhrase(phrase){if(phrase==""){alert("Pleaseenteraphrasebeforeaskingmetospeakforyou.Thanky

javascript - $location.search() 不工作 - AngularJs 1.5

我想获取查询字符串值。我正在使用$location.search()来获取这些值,但它说$location.search不是一个函数。我正在使用1.5版本的AngularJs。JS-varapp=angular.module('myApp',[]);app.config(['$locationProvider',function($locationProvider){$locationProvider.html5Mode(true);}]);app.controller('myCtrl',['$location','$scope',function($scope,$location){

javascript - 为什么 Math.pow(1, Infinity) 返回 NaN?

我一直认为1的任何次方都等于1,但是Math.pow(1,Infinity)返回NaN。为什么不是1? 最佳答案 这更像是一个数学问题而不是Javascript问题,因此您使用数学解释,例如以下(http://mathforum.org/library/drmath/view/53372.html):Whenyouhavesomethinglike"infinity,"youhavetorealizethatit'snotanumber.Usuallywhatyoumeanissomekindoflimitingprocess.So

javascript - D3.js 4 与 AngularJS 1.5(组件或指令?)

我想在AngularJS1.5x中使用D3.jsv4过去我使用.directives作为图表,但现在我想知道是否可以使用.components代替指令,这是否是一个好的做法。CheckthesamplecaseonPlunkr问题出现在组件中的d3.select(element[0]).append('svg')中。控制台抛出错误:元素未定义。所以我尝试了类似d3.select('chart-container').append('svg')但随后d3在拥有该类的第一个元素中注入(inject)所有图表(在所有文档中查找该类,而不仅仅是组件)。那么...有人可以帮我为可重用组件做一个正

javascript - 为什么此代码有效 : "(1,eval)(' this')"

为什么下一个代码是有效的Javascript代码?varglobal=(1,eval)('this');alert(global); 最佳答案 那是因为commaoperator返回它的第二个操作数(并计算两者)。您问题中的代码相当于:1;varglobal=eval('this');alert(global); 关于javascript-为什么此代码有效:"(1,eval)('this')",我们在StackOverflow上找到一个类似的问题: https

Javascript - (1, 2) 到底是什么意思?

我知道在javascript中,语法(1,'a',5,...'b')将始终返回最后一个值,但此语法的实际含义是什么?当我看到(1,2)时——无可否认,它几乎永远不会出现——我应该如何解析该语法? 最佳答案 对单个表达式(逗号之间的位)进行求值,然后整个表达式采用最后一个的值。因此,像您的示例一样列出一系列数字和字符串文字是毫无意义的:(1,'a',5,...'b')//doesthesamethingas('b')...所以除了最后一个,你还不如省去所有。但是,如果单个表达式具有其他效果,因为它们是函数调用或赋值,那么您不能将它们排

javascript - !0 和 !1 比 1 和 0 好吗?

我注意到ClosureCompiler将true和false(或1和0)编译为!0和!1。这对我来说没有意义,因为它的字符数是1和0的两倍。这是有原因的吗?有什么好处吗?谢谢。 最佳答案 1!==true和0!==false,但是!0===true和!1===错误。编译器只是确保类型保持bool值。考虑这个例子:vara=true;if(a===true){console.log('True!');}if(a===1){console.log('Youshouldneverseethis.');}如果将第一行更改为vara=1;,第

javascript - Vue.js 1.0 方法不会在更改选择时触发

关注Vue.js1.0examples,我用v-model项目做了一个选择下拉列表,像这样:{{project}}SchoolPersonalWorkjs位:newVue({el:'#main',data:{project:''},methods:{changeProject:function(){console.log(this.project);}}});标签{{project}}显示正确,但是当我在选择下拉列表中选择另一个值时,它不会触发方法changeProject。我在这里错过了什么?干杯。编辑:在@mustafo的回答之后,我尝试使用@click方法创建一个简单的按钮并打印

javascript - 为什么在 JS 中 +str 比 str*1 更好地将字符串转换为数字?

假设我有一个字符串,它的值已经是一个数字,例如varstr="1234"现在我想把它转换成数字。到目前为止,我在网上看到了两个技巧,使用一元+:varnum=+str使用乘法运算符*:varnum=str*1我想知道一般来说哪个更好。正如我从此处已接受答案的评论中看到的那样:ConvertingJsonResultstoaDate,似乎最好避免使用*1。这是真的吗?背后的原因是什么? 最佳答案 基本上操作更少。一元加号调用内部的toNumber方法,而乘法运算符也调用toNumber,然后对其进行数学运算。为什么要执行额外的步骤?h

javascript - 为什么 Rxjs publishReplay(1).refCount() 不重播?

为什么publishReplay(1).refCount()不为迟到的订阅者重播最后一个值?a=newRx.Subject();b=a.publishReplay(1).refCount();a.subscribe(function(x){console.log('timelysubscriber:',x)});a.next(1);b.subscribe(function(x){console.log('latesubscriber:',x)});预期输出:timelysubscribe:1latesubscriber:1实际输出timelysubscriber:1