var方法

Dart 中断Future

北慕城南 提交于 2020-02-22 15:49:37
更多 中断future 方法1) import 'package:async/async.dart'; void main() { var get = CancelableOperation.fromFuture( Future.delayed(Duration(seconds: 3)), onCancel: () => print('onCancel'), ); get.value.then(print); Future.delayed(Duration(seconds: 1)).then((_) => get.cancel()); } 方法2) import 'package:async/async.dart'; void main() { var completer = CancelableCompleter(onCancel: () => print('onCancel')); completer.complete(Future.delayed(Duration(seconds: 3))); // 添加future completer.operation.value.then(print);// 订阅future Future.delayed(Duration(seconds: 1)).then((_) => completer.operation.cancel());/

创建对象的方法

二次信任 提交于 2020-02-21 06:43:32
创建对象有多种不同的方法: 1. Object构造函数(无法做到 代码复用) var obj1 = new Object ( ) ; obj1 . name = ‘xiaocuo’ ; obj1 . age = 25 ; obj1 . sayHi = function ( ) { alert ( ‘hi,大家好!我叫’ + obj1 . name ) ; } 2. 对象字面量(无法做到 代码复用) var obj3 = { name : ‘laozhao’ , age : 23 , sayHi : function ( ) { alert ( ‘hi,大家好!我叫’ + obj3 . name ) ; } } 3. 工厂模式(解决了代码复用的问题,但是无法解决方法共享,对象类型识别的问题) function createObj ( n , a ) { // 原料 var obj = { } ; // 加工 obj . name = n ; obj . age = a ; obj . sayHi = function ( ) { alert ( ‘hi,大家好!我叫’ + obj . name ) ; } // 出厂 return obj ; } var obj1 = createObj ( ‘小王’ , 23 ) ; var obj2 = createObj ( ‘小李’ , 24

JavaScript OO不XX 学习总结

萝らか妹 提交于 2020-02-21 05:37:38
一、废话 总觉得面向对象这东西,如果做的东西不是十分复杂的话,其实不太有场景能用上。最近重新学习了《JavaScript高级程序设计》中面向对象程序部分的知识,有一些收获,特此记录。 二、JavaScript创建对象最佳实践 2.1 理论 JavaScript是基于原型的语言,创建对象比较常用的方法是采用“构造函数+挂载原型”的方式。 举个例子: var Engineer = function (name) { this.name = name; }; Engineer.prototype.codeWith = function (tools) { return this.name + ' is coding with ' + tools.join(','); }; Engineer.prototype.solve = function (problem) { return this.name + ' is solving ' + problem; }; var a = new Engineer('kohpoll'); var b = new Engineer('xp'); console.log(a, b); console.log(a.codeWith(['vim'])); console.log(a.solve('oo')); 这段代码执行后,事实上的结构是这样的:

js使用

和自甴很熟 提交于 2020-02-19 14:50:19
js使用 HTML 中的脚本必须位于 <script> 与 </script> 标签之间。 脚本可被放置在 HTML 页面的 <body> 和 <head> 部分中。   1.JavaScript 对大小写是敏感的。   2.JavaScript 会忽略多余的空格。您可以向脚本添加空格,来提高其可读性。 Test:点击按钮改变标签内容 <!DOCTYPE html> <html> <body> <h1>My Web Page</h1> <p id="myPar">I am a paragraph.</p> <div id="myDiv">I am a div.</div> <p> <button type="button" onclick="myFunction()">点击这里</button> </p> <script> function myFunction() { document.getElementById("myPar").innerHTML="Hello World"; document.getElementById("myDiv").innerHTML="How are you?"; } </script> <p>当您点击上面的按钮时,两个元素会改变。</p> </body> </html>   3.对代码行进行折行 您可以在文本字符串中使用反斜杠对代码行进行换行

web前端学习之JavaScript

拜拜、爱过 提交于 2020-02-19 14:47:28
JavaScript 是世界上最流行的编程语言。这门语言可用于 HTML 和 web,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。 JavaScript 是脚本语言 JavaScript 是一种轻量级的编程语言。 JavaScript 是可插入 HTML 页面的编程代码。 JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。 通过这段时间对js的学习,越来越发现js的强大与重要性。 1、 语言特性、功能、简介: JavaScript 是世界上最流行的编程语言。 这门语言可用于 HTML 和 web,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。 插入HTML页面中后由所有现代浏览器进行执行。 功能是在HTML页面中为所欲为。 2、 变量、数据类型: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> var a=5; var b="hi,javascript"; var c=true; var d=["one","two","three"]; /** * 注意,script里面的type写不写都不要紧,因为H5中已经将JS认定为默认的脚本语言 * var 是定义变量的前缀

JavaScript基础篇和高级篇

半腔热情 提交于 2020-02-18 03:10:18
基础篇 一、组成部分: ECMAScript,描述了该语 javascript组成 言的语法和基本对象; 文档对象模型(DOM),描述处理网页内容的方法和接口; 浏览器对象模型(BOM),描述与浏览器进行交互的方法和接口。 <script type="text/javascript"> alert("Hello World!"); document.write("Hello World!"); </script> 二、基本语法: 1、JavaScript引入方式: ①内部:<script type="text/javascript">...</script>写在<head></head>或者<body></body>里面; ②外部:新建js文件:myJs.js,在html文件中,<script type="text/javascript" src="myJs.js">...</script> 注:乱码问题: js文件编码设置为utf-8 或 <script type="text/javascript" src="myJs.js" charshet="utf-8" >...</script> 2、JavaScript注释: ①单行:// ②多行:/* */ 3、JavaScript变量: ①弱类型,统一使用var定义变量 e.g. var a; // 定义变量a a = 1; //

js9大陷阱

假装没事ソ 提交于 2020-02-16 20:57:09
1. 区分大小写:变量名、属性和方法全部都区分大小写 2. 不匹配的引号、圆括号或花括号将抛出错误 3. 条件语句:3个常见陷阱 4. 换行:一直用分号结束语句来避免常见的换行问题 5. 标点法:在对象声明的尾部逗号将导致出错 6. HTML id 冲突 7. 变量作用域:全局变量对局部变量 8. 函数重载:当重载不存在时,覆盖函数 9. 区分string.replace()函数不是全局的 10. parseInt应该包含两个参数 11. “this”和绑定问题 12. 为参数设置默认值,以免你遗漏它们 13. for each循环是用于对象而不是数组 14. switch语句需要点技巧 15. 总是在检查undefined前检查null 16. 时间处理陷阱 区分大小写 变量名和函数名都是区分大小写的。就像配错的引号一样,这些大家都知道。但是,由于错误是不作声的,所以这是一个提醒。为自己选择一个命名规则,并坚持它。而且,记住 源码 外你会少一些顾虑:所以当移动代码且最终导致两个语句在一行时,你无需担心第一个语句是否正确结束。 多余的逗号 在任何JavaScript对象定义中,最后一个属性决不能以一个逗号结尾。 Firefox 不会出错,而IE会报语法错误。 var theObj = { city : "Boston", state : "MA",//IE6和IE7中有“缺少标识符

JavaScript 中的数据类型与变量

你离开我真会死。 提交于 2020-02-16 13:12:55
一、动态类型 JavaScript 是一种 弱类型 或者说 动态 语言。这意味着我们不用提前声明变量的类型(松散类型),在程序运行过程中,类型会被自动确定。也就是说我们可以使用同一个变量保存不同类型的数据,每个变量仅仅是一个用于保存值得占位符而已。 二、变量 定义变量 定义变量时要使用 var 操作符( var 是一个关键字),后跟变量名(即一个标识符): var username ; ES6 中新增了 let 和 const 关键字来代替 var ,这里我们先不做过多的讨论。 这行代码定义了一个名为 username 的变量,该变量可以用来保存任何值。这里有一点需要注意:像这样未经过初始化的变量,会保存一个特殊的值 —— undefined 。 初始化变量 我们也可以初始化变量,在定义变量的同时可以设置变量的值: var username = 'Deepspace' ; 初始化变量并不会把它标记为字符串类型,初始化的过程就是给变量赋一个值。 修改变量 因此,我们可以在修改变量值的同时修改值得类型: var username = 'Deepspace' ; username = 1 ; 有一点需要注意,用 var 操作符定义的变量将成为该变量的作用域中的局部变量。也就是说,如果在函数中使用 var 定义一个变量,那么这个变量在函数退出后就会被销毁。看个例子: function

js优化细则整理(详细版)

非 Y 不嫁゛ 提交于 2020-02-15 13:31:53
目录 原生js部分 关于JQ部分 原生js部分 参考文章 js性能优化的小知识 javascript性能优化技巧 JavaScript性能优化之小知识总结 DOM编程 建议将对象进行缓存处理,特别是DOM访问是比较消耗资源的 使用DocumentFragment优化多次append 一旦需要更新DOM,请考虑使用文档碎片来构建DOM结构,然后再将其添加到现存的文档中。 for (var i = 0; i < 1000; i++) { var el = document.createElement('p'); el.innerHTML = i; document.body.appendChild(el); } //可以替换为: var frag = document.createDocumentFragment(); for (var i = 0; i < 1000; i++) { var el = document.createElement('p'); el.innerHTML = i; frag.appendChild(el); } document.body.appendChild(frag); 使用一次innerHTML赋值代替构建dom元素 对于大的DOM更改,使用innerHTML要比使用标准的DOM方法创建同样的DOM结构快得多。 var frag =

js9大陷阱

99封情书 提交于 2020-02-15 07:59:10
1. 区分大小写:变量名、属性和方法全部都区分大小写 2. 不匹配的引号、圆括号或花括号将抛出错误 3. 条件语句:3个常见陷阱 4. 换行:一直用分号结束语句来避免常见的换行问题 5. 标点法:在对象声明的尾部逗号将导致出错 6. HTML id 冲突 7. 变量作用域:全局变量对局部变量 8. 函数重载:当重载不存在时,覆盖函数 9. 区分string.replace()函数不是全局的 10. parseInt应该包含两个参数 11. “this”和绑定问题 12. 为参数设置默认值,以免你遗漏它们 13. for each循环是用于对象而不是数组 14. switch语句需要点技巧 15. 总是在检查undefined前检查null 16. 时间处理陷阱 区分大小写 变量名和函数名都是区分大小写的。就像配错的引号一样,这些大家都知道。但是,由于错误是不作声的,所以这是一个提醒。为自己选择一个命名规则,并坚持它。而且,记住 源码 外你会少一些顾虑:所以当移动代码且最终导致两个语句在一行时,你无需担心第一个语句是否正确结束。 多余的逗号 在任何JavaScript对象定义中,最后一个属性决不能以一个逗号结尾。 Firefox 不会出错,而IE会报语法错误。 var theObj = { city : "Boston", state : "MA",//IE6和IE7中有“缺少标识符