js

js闭包

隐身守侯 提交于 2021-02-20 02:37:16
一、变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域。 变量的作用域无非就是两种:全局变量和局部变量。 Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。 Js代码    var n=999;   function f1(){     alert(n);   }   f1(); // 999 另一方面,在函数外部自然无法读取函数内的局部变量。 Js代码    function f1(){     var n=999;   }   alert(n); // error 这里有一个地方需要注意,函数内部声明变量的时候,一定要使用var命令。如果不用的话,你实际上声明了一个全局变量! Js代码    function f1(){     n=999;   }   f1();   alert(n); // 999 -------------------------------------------------------------------------------------------------------- 二、如何从外部读取局部变量? 出于种种原因,我们有时候需要得到函数内的局部变量。但是,前面已经说过了,正常情况下,这是办不到的,只有通过变通方法才能实现。 那就是在函数的内部,再定义一个函数。 Js代码    function

那些年我看过的前端书

懵懂的女人 提交于 2021-02-19 02:40:11
面试时,考官问我都看过哪些前端的书,当时竟一时想不起来几本,抽个时间整理一下: 一、Javascript方面的书籍: 1 JavaScript权威指南(第6版):号称javascript圣经,前端必备;前端程序员学习核心JavaScript语言和由Web浏览器定义的JavaScript API的指南和综合参考手册; 2 JavaScript高级程序设计(第3版) :前端必备书,如果你想真正进入前端世界,这是一本不可多得的进阶书,没什么好说的,必须细细品读; 3 JavaScript语言精粹 :这是一本值得任何正在或准备从事JavaScript开发的人阅读,并且需要反复阅读的js书籍; 4 基于MVC的JavaScript Web富应用开发 :这不是一本适合初学者看的书籍,更适合具有一定前端开发经验的从业人员看的框架书,如果你想构建一个复杂的前端应用,你会如获至宝; 5 JavaScript DOM编程艺术(第2版):好书主要是dom操作和兼容方面的知识,值得一看; 6 JavaScript经典实例 :可以看看,主要是有关javascript一些典型小工具,有些剖析的并不深入,总体来说可以看看; 7 JavaScript设计模式 :写js不难。如何编写优美、结构化和可维护的代码呢?反复的揣摩这本书吧; 8 JavaScript编程精解 : 了解一下可以; 9 JavaScript模式

JQUERY跨域

不羁的心 提交于 2021-02-18 03:12:49
用jsonp跨域 客户端JQuery.ajax的调用代码示例: $.ajax({ type : "get", async:false, url : "http://www.xxx.com/ajax.do", dataType : "jsonp", jsonp: "callbackparam",//服务端用于接收callback调用的function名的参数 jsonpCallback:"success_jsonpCallback",//callback的function名称 success : function(json){ alert(json); alert(json[0].name); }, error:function(){ alert('fail'); } }); 服务端返回数据的示例代码: public void ProcessRequest (HttpContext context) { context.Response.ContentType = "text/plain"; String callbackFunName = context.Request["callbackparam"]; context.Response.Write(callbackFunName + "([ { name:\"John\"}])"); } 用 JS创建动态脚本跨域

前端技术、框架

这一生的挚爱 提交于 2021-02-15 03:35:41
html,现在都是html5:超文本标记语言,就是控制页面布局的标签(比如div) js:客户端脚本语言,用来做动态效果 css:页面样式,布局 bootstrap:响应式后台模板(js+css) angularjs:js的一种框架 jquery:js的一种框架 json:一种数据传输的格式 ajax:js,xml,css技术的组合 总结:In my opinion,html5+angularjs+bootstrap是最好的前端框架 来源: oschina 链接: https://my.oschina.net/u/2400848/blog/514646

重学JS 1

浪子不回头ぞ 提交于 2021-02-12 06:51:14
js 对象:unfined null bool number string object function 可以调用type of 返回类型. undefined null "" 0 转成逻辑值 为false. 其中只有 undefined == null. js 比较分为数据值,与数据类型的比较,比如"234 " == 234 这个是比较数据值, 所以 返回的是true.但是他们的数据类型并不相等.可以通过"234"===234 这个返回的是false. js 中没有对象的概念,随时都可以 var body = {}; body.hand="left" body.leg="ewl".灵活的对象与属性的关系. function 一种类型。typeof(myfunction)返回的将是function数据类型. var functionA = function(){ alert("come in world"); } 在js 中代码也是一种数据,同意可以被赋值和修改. function 有 caller property , function whereIam(){ aler("call me who"+ whereIam.caller) } function oschinaCall(){whereIam();} oschinaCall(); // call me who

javascript:with语句

本小妞迷上赌 提交于 2021-01-20 09:28:08
1)简要说明 with 语句可以方便地用来引用某个特定对象中已有的属性,但是不能用来给对象添加属性。要给对象创建新的属性,必须明确地引用该对象。 2)语法格式 with(object instance) { //代码块 } 有时候,我在一个程序代码中,多次需要使用某对象的属性或方法,照以前的写法,都是通过:对象.属性或者对象.方法这样的方式来分别获得该对象的属性和方法,着实有点麻烦,学习了with语句后,可以通过类似如下的方式来实现: with(objInstance) { var str = 属性1; ..... } 去除了多次写对象名的麻烦。 3)举例 <script language="javascript"> <!-- function Lakers() { this.name = "kobe bryant"; this.age = "28"; this.gender = "boy"; } var people=new Lakers(); with(people) { var str = "姓名: " + name + "<br>"; str += "年龄:" + age + "<br>"; str += "性别:" + gender; document.write(str); } //--> </script> 代码执行效果如下: 姓名: kobe bryant 年龄

margin-top/bottom(padding-top/bottom)百分比以祖级宽度计算

风格不统一 提交于 2020-12-17 05:18:34
虽然这个不是见怪不怪的问题了,但是对于非专业前端来说,确实被愚弄了一番。还一味的以相对高度来控制元素之间的间距问题。 http://www.zhihu.com/question/20983035?sort=created 这里是知乎上面提出的问题。 我解决的办法是用div 来控制间距,用JS 计算百分比。不同的问题不同的解决办法。因为规定如此,没办法。谁有更好的解决办法请告诉一下,谢谢 来源: oschina 链接: https://my.oschina.net/u/126531/blog/288616

ionic 性能优化 (持续更新)

試著忘記壹切 提交于 2020-11-24 06:52:21
集成crosswalk, 参考 http://my.oschina.net/u/2485194/blog/517964 跳转页面不流畅,页面切换等待较久,思路:尽可能减少立刻载入的资源量 跳转后的页面不要载入太多css或js文件, 采用提前载入方式(index中载入) 可考虑内容延迟载入方式,先跳转到下一页,通过loading效果等待内容载入 来源: oschina 链接: https://my.oschina.net/u/2485194/blog/518270

js闭包

末鹿安然 提交于 2020-11-08 18:51:10
昨天接触到的一些问题让我对js闭包有了更深刻的理解。 现在我将问题的“上下文”详细说一下: 我要实现一个页面,让管理员对用户的权限进行管理,页面如下: 我要实现的效果是:当管理员单击下拉列表对用户的审核状态进行更改之后,将要修改的用户id和目前审核状态发送至后台,在后台处理完之后将信息反馈给前端,并进行一些提示,效果如图: 将提示信息显示在被处理用户信息同一行的一个单元格里面。 简单的思路:用jquery.post也好xmlhttprequest.open也好,当管理员对某一行的审核状态进行修改的时候,收集用户编号和修改后的审核状态,发送给后台,后台将处理的结果反馈回来,当前端得到后台的反馈之后,执行事先定义的回调函数,进行相应的提示操作: jQuery.post( url, {id:2,state:good}, function(){ //more cord…… } ); 问题的关键来了 ,从服务器反馈的信息可以知道要显示操作成功还是操作失败,但是,你要在表格里面显示提示信息,至少要知道提示信息要显示在第几行吧,然而后台并不是万能的,这么“前端”的问题,就不要为难后台了。 也许你会说,那就定义一个js的全局变量,记录管理员操作的记录是哪一行的,到时候后台反馈了就能直接定位显示了,好吧,这个暂时是解决了,假如,这个管理员的手很快,而后台的反应很慢,管理员处理了五六个

UC前端‘搭积木’的模块化开发——scrat.js

老子叫甜甜 提交于 2020-04-24 06:12:21
模块化开发 将模块所需的js\css\img\tmpl维护在一起, 一个模块一个目录 js渲染模板 css只关心模块内样式 开发团队心声;“我们希望每次研发新产品不是从零开始,不同团队不同项目之间能有可复用的模块沉淀下来。” 模块生态 每个工程有_工程模块_和_生态模块_。 生态模块 :基于_component规范_开发,部署到Github上,可以通过命令行工具将Github上的模块安装到工程中使用。比如:jQuery, iscroll, zepto.js, vue.js 安装命令: scrat install yyx990803/vue scrat intall FontAwesome/Font-Awesome 项目开始->声明生态模块依赖 安装生态模块-> 命令行安装 使用vue+scrat实现组件 scrat提供模块依赖、引用、加载、内嵌等 Vue.component 定义组件 模板中声明式的数据和事件绑定 数据驱动的组件化设计 在模板里直接使用自定义标签如 <c-menu> 、绑定事件等 使用scrat自动构建项目 scrat可以安装在持续集成系统中对项目进行自动构建,还具有按版本构建的能力。 个人看法 该框架提出的以搭积木的方式来开发模块,最后搭建系统的这种方式还是挺好的,之前我开发的项目都是使用requirejs+sass对js和css管理