js细节】的更多相关文章

今天在写一个程序,出了一点小bug,找了许久许久,终于把问题给揪了出来,真相大白那一刻感觉好蛋疼--深刻体会到了语言之间的差异. <script type="text/javascript"> var num1 = 3; var num2 = -3; test(num1); test(num2); function test(num){ if(num){ alert(num+"大于0"); }else{ alert(num+"小于0"…
针对EXT.JS版本的演进,要不断的学习新的最佳实践方法. 比如,在定义组件时,尽管用itemid,而不是id. 在搜索组件时,尽量用ComponentQuery,而不是getCmp. 在MVC中处理Widget Column事件时,应该自定义,而在MVVM中,ViewController 直接写: handler: 'onWidgetClick'. 而在MVC中,需要如下定义: scope: me, //#17 handler: function(btn) { //#18 me.fireEve…
1.小心函数中的“s“ getElementsByTagName:得到的是数组 getElementById:得到的是对象 2.js 中设置哪一项被选中 subject.selectedIndex = 1…
细节1 1.Chrome中文界面下会将小于12px的字体默认显示为12px,解决方法:在CSS中加入-webkit-text-size-adjust:none; 2.link可以加载除CSS以外的其他文档,@import只能加载CSS 3.IE下,可以使用普通方法获取自定义属性,也可以使用getAttribute()方法获得自定义属性, 在FireFox下只能使用getAttribute()获得自定义属性,解决方法,统一用getAttribute()方法. 4.超链接在被点击访问过以后就不显示了…
1.js中无replaceAll方法,但能够用replace(regex," "),第一个參数是正則表達式,第二个參数是string,eg:str.replace(/\r\n/g,"*")表示将全部的回车换行都用*来替换. 2.textarea中按下回车,会自己主动填充\r\n.可由js获取.可是经过server端获取就会无\r\n. 3.EXT怎样获取DOM元素.用Ext.getDom(),注意Ext.get().Ext.getDom().Ext.getCmp()…
1.js中var a=s=1和var a=1,s=1的区别 function fl() { ; } function fl1() { , s = ; } 看出问题所在了吗? var q=w=1 中的s在函数执行后变成全局变量了 2. }; var b = a; a.x = a = {n:}; console.log(a.x);// --> undefined console.log(b.x);// --> {n: 2} 上面的代码很简单,但能做对的很少; 下面为本人理解:说明: var a =…
js细节 1.所有的全局变量都是window的属性. 语句 var a=1; 等价于 window.a=1; 用 "变量名称" in window 来验证全局变量是否声明. 2.所有的变量声明都在范围作用域的顶部. alert("a" in window); var a; 尽管a的声明在 alert 之后,alert弹出的依然是true; 这是因为javascript引擎首先会扫描所有的全局变量声明, 然后将这些变量声明移动到顶部,最终的代码效果是这样的: var…
理解Node.js 为了理解Node.js是如何工作的,首先你需要理解一些使得Javascript适用于服务器端开发的关键特性.Javascript是一门简单而又灵活的语言,这种灵活性让它能够经受住时间的考验.函数.闭包等特性使Javascript成为一门适合Web开发的理想语言. 有一种偏见认为Javascript是不可靠的,然而事实并非如此.人们对Javascript的偏见来源于DOM,DOM是浏览器厂商提供的用于Javascript与浏览器交互的API,不同浏览器厂商实现的DOM存在差异.…
MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心是提供对View 和 ViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自动传递给 View,即所谓的数据双向绑定. Vue.js 是一个提供了 MVVM 风格的双向数据绑定的 Javascript 库,专注于View 层.它的核心是 MVVM 中的 VM,也就是 ViewModel. ViewModel负责连接 View 和 Model,保证视图和数据的一致性,这种轻量…
这周开始进行收尾工作,我当然没有进行核心技术的开发,主要负责的是对web端进行展示上的修修补补,主要包括添加VLC播放器.rtsp视频流以及一些js细节. 1.VLC 全称为Video Lan Client,此播放器支持各种格式,在平台中主要作为播放实时视频的工具.首先找到VLC的wiki,webplugin一节中有快速上手的文字,学习一些播放控制的方法.对于web端,通过html的OBJECT标签在网页中加入播放器,在target属性中写入实时监控的视频即可.其中还有一些其他参数用来控制播放.…
2017年年终总结(就是一个程序员的瞎叨叨): 从来到中科院到现在,很开心可以在这留下来.毕竟对于我来说,这里符合我对自己毕业后前两年的规划.我是一个很慢的人,特别是对于我想做好的事情,我会非常认真仔细的思考,不愿意放过任何一个漏洞.而对于我的专业来说,对于前端,我当时也是知之甚少.我愿意花费更多的时间去补充自己的知识,我非常乐意学习新的知识,新的内容,以及了解所有我不知道的,意料之外的现象.了解他们形成的原理,去避开,或使用他们.但是我不愿意自己在没有很牢固的基础时,去大量的学习内容,我觉得这…
原文:https://www.cnblogs.com/onepixel/p/6034307.html MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心是提供对View 和 ViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自动传递给 View,即所谓的数据双向绑定. Vue.js 是一个提供了 MVVM 风格的双向数据绑定的 Javascript 库,专注于View 层.它的核心是 MVVM 中的 VM,也就是 Vie…
看完<你不知道的javascript>上,对作用域的新的理解(2018-9-25更) 一.学习笔记:   1.javascript中的作用域和作用域链 +  每个函数在被调用时都会创建一个自己的执行环境(作用域),javascript中一切皆为对象,函数也是一个对象:函数对象和其他对象一样,拥有通过代码访问的属性和仅供javascript引擎访问的内部属性.其中一个内部属性就是[[scope]],它是函数在被定义时就创建的,它包含了 函数被创建的作用域中对象的集合.这个集合被称为函数的作用域链…
之前学习js仅仅是把w3school上的基本语法看了一次而已,再后来细看书的时候,书中会出现很多很多没有听过的语法,其中一个就是js的继承以及总能看到的prototype.我主要在看的两本js书是<javascript权威指南>,也就是那本犀牛书,还有一本是疯狂xx系列的<疯HTML5/CSS3/Javascript讲义>.前者非常适合用啃js细节,如果需要深入学习一些js内部机制以及相关的内容,这本大块头啃起来还是挺有味道的.后者是本速成教材,可以让你对某个概念有一个非常舒服的打…
MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心是提供对View 和 ViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自动传递给 View,即所谓的数据双向绑定. Vue.js 是一个提供了 MVVM 风格的双向数据绑定的 Javascript 库,专注于View 层.它的核心是 MVVM 中的 VM,也就是 ViewModel. ViewModel负责连接 View 和 Model,保证视图和数据的一致性,这种轻量…
javascript从定义到执行,JS引擎在实现层做了很多初始化工作,因此在学习JS引擎工作机制之前,我们需要引入几个相关的概念:执行环境栈.全局对象.执行环境.变量对象.活动对象.作用域和作用域链等,这些概念正是JS引擎工作的核心组件.这篇文章的目的不是孤立的为你讲解每一个概念,而是通过一个简单的demo来展开分析,全局讲解JS引擎从定义到执行的每一个细节,以及这些概念在其中所扮演的角色. var x = 1; //定义一个全局变量 x function A(y){ var x = 2; //…
最近工作需要,实现一个特定环境的模块加载方案,实现过程中有一些技术细节不解,便参考 了一些项目的api设计约定与实现,记录下来备忘. 本文不探讨为什么实现模块化,以及模块化相关的规范,直接考虑一些技术实现原理. 1.简单实现模块化 一开始我想如果我的代码只有一个文件,那几行不就实现了吗 main.js var modules = {} var define = function(id,factory){ moudles[id] = factory } var require = function…
来源于:http://www.cnblogs.com/onepixel/p/5090799.html javascript从定义到执行,JS引擎在实现层做了很多初始化工作,因此在学习JS引擎工作机制之前,我们需要引入几个相关的概念:执行环境栈.全局对象.执行环境.变量对象.活动对象.作用域和作用域链等,这些概念正是JS引擎工作的核心组件.这篇文章的目的不是孤立的为你讲解每一个概念,而是通过一个简单的demo来展开分析,全局讲解JS引擎从定义到执行的每一个细节,以及这些概念在其中所扮演的角色. v…
Vue.js 和 MVVM 的小细节 转载 作者:流云诸葛 链接:www.cnblogs.com/lyzg/p/6067766.html MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心是提供对View 和 ViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自动传递给 View,即所谓的数据双向绑定. Vue.js 是一个提供了 MVVM 风格的双向数据绑定的 Javascript 库,专注于View 层.它的核心是…
一 前端开发概述 html页面:html css javascript 拿到UI设计图纸:切图-->html+css静态布局-->用JS写一写动态效果-->ajax和后台进行交互,把数据动态绑定到页面上-->用node.js服务平台做源代码管理-->用node.js做后台 二 js引入到页面的方式和细节 知识点巩固:css引入方式 行内式 内嵌式(将css样式写在style标签快里面,放在head里面) 外链式(只是将内嵌式中css样式放到外面一个单独的样式文件中了) 导入式…
javascript绑定事件: 经常用jQuery去写,时间长了对原生态的js事件绑定的知识会慢慢淡化或者遗忘了,必须翻出来再次总结,今天再次把js原生态事件的处理做个总结. 从最初开始,谁刚接触javascript的时候,老师都会这样教导我们怎么触发事件,在页面某个DOM节点上面添加所要触发的事件,比如:onclick,onmousedown,onmouseup,onfocus,onchange等等...看代码 <!DOCTYPE html> <html> <head>…
变量转换 var myVar = "3.14159", str = ""+ myVar,// string类型 int = ~~myVar, // number类型 float = 1*myVar, // number类型 bool = !!myVar, // boolean类型 array = [myVar]; // array类型 但是转换日期(new Date(myVar))和正则表达式(new RegExp(myVar))必须使用构造函数,创建正则表达式的时…
1,声明变量要赋初值2,尽量避免声明全局变量,可以减少与系统的重名3,当编写大量js代码时,难免会遇到命名冲突,这是可以通过模拟命名空间方式     来避免冲突4,尽量避免使用全局变量,搜索全局变量是会一层一层的搜索每个作用域范围,      耗时,低效.5,使用减值循环或者优化循环条件,不要再循环条件中写i<xxx.Length,而要用一     个变量来代替,i<len.因为每次循环都会执行计算length,var i=0也拿到外面     去.6,避免使用eval(“alert(10):…
 1. this._eventsCount = { }    这是为了避免不必要的深度遍历: 在有广播事件到来时,如果当前 vm 的 _eventsCount 为 0, 则不必向其子 vm 继续传播该事件. 2. 数据更新的diff机制 视图更新效率的焦点问题: 大列表的更新 和 深层数据更新 而大列表较为常见 repeat.js 首先diff(data, oldVms) 大概是先比较 新旧两个列表 的vm的数据状态, 然后 差量更新DOM 步骤: 1.遍历 新列表里的 每一项, 如果 该项的v…
原型和原型链 在对象自身身上找不到指定属性时,就会到这个对象的原型__proto__上找,原型也是指向一个对象,在这个对象上还找不到对应属性,则继续到原型上来找...以上过程形成原型链. 访问对象的原型:obj.__proto__ 或者可以调用Object.getPrototypeOf(obj),返回的值也是obj.__proto__: obj.__proto__ 的值,在对象构造的时候,默认等于 obj.constructor.prototype ,可以理解为默认情况下:obj.__proto…
1, 参数是一个对象,核心js对象(native ECMAScript object)或宿主对象(host object),那么将直接返回该对象. 其生成的对象构造器仍然是所传参数对象的构造器.这样造成的后果是虽然该对象是new Object,但其constructor不一定是Object. 复制代码 代码如下: function Person(){this.name='jack';} var w = new Object(window), d = new Object(document), p…
事因: 我所维护的项目为旧项目,接手项目后并没有什么开发文档留下,导致很多时候一出现问题就需要自己去研究整个过程. 项目中一直使用一个"$.download()"的方法进行文件下载.后续出现很奇怪的情况,我将原本项目的js都引用到新的项目中去, 可是在我的环境中无法成功执行,在另一位同事的环境下却可以正常执行.(若看到此文章的大神能提供一些比较好的解决 方式给我亦可以留言,十分感谢!) 小白之一些维护开发想法: 倘若原本的方法,作为一个开发者的你,并不了解究竟有多少处使用.很多开发者都…
1 input输入框内value值保留有效数字,js自带的方法.toFixed(),但是直接使用会报错,因为不论输入框内输入汉字.字母还是数字,类型都是string.解决的办法是将其转换为number类型.parseInt().parseFloat()就排上用场了,经过转换后,再使用.toFixed(),结果就是我们想要的: var input = document.getElementById('#input'); console.log(parseFloat(input.value).toF…
一.复杂数据类型-“对象”的地址引用方式,不理解清楚,会出大乱子 复习一下基础概念(老司机略过): JS的数据可以分为简单类型(数字.字符串.布尔值.null和undefined)和 复杂数据类型(对象),主要的不同是:简单数据类型是栈内存直接引用,复杂数据类型是地址引用的,放在堆内存中,所以也叫引用类型(堆栈概念庞大,这里不讲,百度资料很多).下边讲到的诸多问题的导火索,就是这个地址引用. 这里不谈“js中一切皆对象”这个言论,因为数字.字符串.布尔值等貌似‘对象’,因为他们有用方法,但请看定…
Vue.js 是采用 Object.defineProperty 的 getter 和 setter,并结合观察者模式来实现数据绑定的. 当把一个普通 Javascript 对象传给 Vue 实例来作为它的 data 选项时,Vue 将遍历它的属性,用 Object.defineProperty 将它们转为 getter/setter. 用户看不到 getter/setter,但是在内部它们让 Vue 追踪依赖,在属性被访问和修改时通知变化.   Observer :数据监听器,能够对数据对象的…