var方法

怎样推迟某个函数的执行

試著忘記壹切 提交于 2019-12-01 22:10:42
方法1: 使用setTimeout(); function sayHi(){ alert("Hi."); } setTimeout(sayHi, 2000); 方法2: 使用window.requestAnimationFrame(); var element = document.getElementById('animate'); element.style.position = 'absolute'; var start = null; function step(timestamp) { if (!start) start = timestamp; var progress = timestamp - start; // 元素不断向左移,最大不超过200像素 element.style.left = Math.min(progress / 10, 200) + 'px'; // 如果距离第一次执行不超过 2000 毫秒, // 就继续执行动画 if (progress < 2000) { window.requestAnimationFrame(step); } } window.requestAnimationFrame(step); 两者区别: setTimeout()需要手动设置延迟时间, 而requestAnimationFrame(

浅谈前端的BOM和DOM

时光总嘲笑我的痴心妄想 提交于 2019-12-01 20:20:22
前端之BOM和DOM 前戏 到目前为止,我们已经学过了JavaScript的一些简单的语法。但是这些简单的语法,并没有和浏览器有任何交互。 也就是我们还不能制作一些我们经常看到的网页的一些交互,我们需要继续学习BOM和DOM相关知识。 JavaScript分为 ECMAScript,DOM,BOM。 BOM(Browser Object Model)是指浏览器对象模型,它使 JavaScript 有能力与浏览器进行“对话”。 DOM (Document Object Model)是指文档对象模型,通过它,可以访问HTML文档的所有元素。 Window对象是客户端JavaScript最高层对象之一,由于window对象是其它大部分对象的共同祖先,在调用window对象的方法和属性时,可以省略window对象的引用。例如:window.document.write()可以简写成:document.write()。 window对象 所有浏览器都支持 window 对象。它表示浏览器窗口。 **如果文档包含框架(frame 或 iframe 标签),浏览器会为 HTML 文档创建一个 window 对象,并为每个框架创建一个额外的 window 对象。* **没有应用于 window 对象的公开标准,不过所有浏览器都支持该对象。* 所有 JavaScript 全局对象

前端之JavaScript

為{幸葍}努か 提交于 2019-12-01 19:12:58
1 | 0 JavaScript概述 1 | 1 ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript提交给国际标准化组织ECMA,希望这门语言能够成为国际标准。次年,ECMA发布262号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript,这个版本就是1.0版。 该标准一开始就是针对JavaScript语言制定的,但是没有称其为JavaScript,有两个方面的原因。一是商标,JavaScript本身已被Netscape注册为商标。而是想体现这门语言的制定者是ECMA,而不是Netscape,这样有利于保证这门语言的开发性和中立性。 因此ECMAScript和JavaScript的关系是,前者是后者的规格,后者是前者的一种实现。 1 | 2 ECMAScript的历史 年份 名称 描述 1997 ECMAScript 1 第一个版本 1998 ECMAScript 2 版本变更 1999 ECMAScript 3 添加正则表达式 添加try/catch ECMAScript 4 没有发布 2009 ECMAScript 5 添加"strict mode"严格模式 添加JSON支持 2011 ECMAScript 5.1 版本变更

前端之BOM和DOM

自古美人都是妖i 提交于 2019-12-01 19:12:16
1 | 0 前戏 到目前为止,我们已经学过了JavaScript的一些简单的语法。但是这些简单的语法,并没有和浏览器有任何交互。 也就是我们还不能制作一些我们经常看到的网页的一些交互,我们需要继续学习BOM和DOM相关知识。 JavaScript分为 ECMAScript,DOM,BOM。 BOM(Browser Object Model)是指浏览器对象模型,它使 JavaScript 有能力与浏览器进行“对话”。 DOM (Document Object Model)是指文档对象模型,通过它,可以访问HTML文档的所有元素。 Window对象是客户端JavaScript最高层对象之一,由于window对象是其它大部分对象的共同祖先,在调用window对象的方法和属性时,可以省略window对象的引用。例如:window.document.write()可以简写成:document.write()。 1 | 1 window对象 所有浏览器都支持 window 对象。它表示浏览器窗口。 如果文档包含框架(frame 或 iframe 标签),浏览器会为 HTML 文档创建一个 window 对象,并为每个框架创建一个额外的 window 对象。 没有应用于 window 对象的公开标准,不过所有浏览器都支持该对象。 所有 JavaScript 全局对象、函数以及变量均自动成为

前端之JavaScript

烈酒焚心 提交于 2019-12-01 16:58:10
目录 JavaScript概述 ECMAScript和JavaScript的关系 ECMAScript的历史 JavaScript引用方式 JavaScript语言规范 JavaScript基础 变量声明 注意: JavaScript数据类型 JavaScript拥有动态类型 数值(Number) 字符串(String) 布尔值(Boolean) null和undefined 对象(Object) forEach() splice() map() 类型查询 运算符 算数运算符 比较运算符 逻辑运算符 赋值运算符 流程控制 if-else if-else if-else switch for while 三元运算 函数 函数定义 函数中的arguments参数 函数的全局变量和局部变量 作用域 词法分析(尝试理) 内置对象和方法 自定义对象 Date对象 JSON对象 RegExp对象 Math对象 JavaScript概述 ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript提交给国际标准化组织ECMA,希望这门语言能够成为国际标准。次年,ECMA发布262号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript,这个版本就是1.0版。

js

旧城冷巷雨未停 提交于 2019-12-01 16:35:58
ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript提交给国际标准化组织ECMA,希望这门语言能够成为国际标准。次年,ECMA发布262号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript,这个版本就是1.0版。 该标准一开始就是针对JavaScript语言制定的,但是没有称其为JavaScript,有两个方面的原因。一是商标,JavaScript本身已被Netscape注册为商标。而是想体现这门语言的制定者是ECMA,而不是Netscape,这样有利于保证这门语言的开发性和中立性。 因此ECMAScript和JavaScript的关系是,前者是后者的规格,后者是前者的一种实现。 ECMAScript的历史 年份 名称 描述 1997 ECMAScript 1 第一个版本 1998 ECMAScript 2 版本变更 1999 ECMAScript 3 添加正则表达式添加try/catch ECMAScript 4 没有发布 2009 ECMAScript 5 添加"strict mode"严格模式添加JSON支持 2011 ECMAScript 5.1 版本变更 2015 ECMAScript 6 添加类和模块 2016

BOM和DOM

陌路散爱 提交于 2019-12-01 16:35:45
目录 前端之BOM和DOM 前戏 BOM window对象 window的子对象 navigator对象(了解即可) screen对象(了解即可) history对象(了解即可) location对象 弹出框 计时相关 DOM HTML DOM 树 查找标签 直接查找 间接查找 节点操作 创建节点 添加节点 删除节点: 替换节点: 属性节点 attribute操作 属性的增删改 获取值操作 class的操作 指定CSS操作 事件 常用事件 绑定方式: 定时器 搜索框示例 select联动 window.onload 前端之BOM和DOM 前戏 到目前为止,我们已经学过了JavaScript的一些简单的语法。但是这些简单的语法,并没有和浏览器有任何交互。 也就是我们还不能制作一些我们经常看到的网页的一些交互,我们需要继续学习BOM和DOM相关知识。 JavaScript分为 ECMAScript,DOM,BOM。 BOM(Browser Object Model)是指浏览器对象模型,它使 JavaScript 有能力与浏览器进行“对话”。 DOM (Document Object Model)是指文档对象模型,通过它,可以访问HTML文档的所有元素。 Window对象是客户端JavaScript最高层对象之一,由于window对象是其它大部分对象的共同祖先

javascript 最权威的知识点总结

你说的曾经没有我的故事 提交于 2019-12-01 13:43:14
JavaScript中如何检测一个变量是一个String类型?请写出函数实现 typeof(obj) === "string" typeof obj === "string" obj.constructor === String 请用js去除字符串空格? 方法一:使用replace正则匹配的方法 去除所有空格: str = str.replace(/\s*/g,""); 去除两头空格: str = str.replace(/^\s*|\s*$/g,""); 去除左空格: str = str.replace( /^\s*/, “”); 去除右空格: str = str.replace(/(\s*$)/g, ""); str为要去除空格的字符串,实例如下: var str = " 23 23 "; var str2 = str.replace(/\s*/g,""); console.log(str2); // 2323 方法二:使用str.trim()方法 str.trim()局限性:无法去除中间的空格,实例如下: var str = " xiao ming "; var str2 = str.trim(); console.log(str2); //xiao ming 同理,str.trimLeft(),str.trimRight()分别用于去除字符串左右空格。 方法三

day53

风流意气都作罢 提交于 2019-12-01 13:38:13
引入方式 Script标签内写代码 <script>//在这里面写JS代码</script> 引入额外的JS文件 <script src="myscript.js"></script> 语言规范 注释 // 单行注释 /* 多行 注释 */ 结束符 JavaScript中的语句要以分号(;)为结束符 JS语言基础 变量声明 JavaScript的变量名可以使用_ ,数字,字母,$组成,不能以数字开头 声明变量使用 var 变量名 ;的格式来进行声明 var name = "Alex"; var age = 18; 注意: 变量名是区分大小写的。 推荐使用驼峰式命名规则。 保留字(关键字)不能用做变量名。 补充: ES6新增了let命令,用于声明变量。其用法类似于var,但是所声明的变量只在let命令所在的代码块内有效。例如:for 循环的计数器就很适合使用let命令。 var=['a','b','c','d'] for (let i=0; i<arr.length; i++){console.log(i)} i ''' 会报错i is not defined at <anonymous>:1:1 ''' 但是 for (var i=0; i<arr.length; i++) {console.log(i)} i """ 不会报错,输出4 """ ES6新增const用来声明常量

打造静态分析器(二)基于Asp.Net Core 3.0的AspectCore组件检测

為{幸葍}努か 提交于 2019-12-01 13:11:54
上一篇,我们打造了一个简单的分析器,但是我们实际使用分析器就是为了对项目做分析检测,增加一些非语法的自检的 比如Asp.Net Core 3.0的替换依赖注入检测 设计分析 我们创建一个默认的Asp.Net Core 3.0的项目 打开Startup.cs 大致结构如下 我们要针对Startup分析,第一方法ConfigureServices的返回类型必须是void 这是Asp.Net Core 3.0的改动之一,所以,当Startup.ConfigureServices返回类型不等于void的时候,我们就抛出错误提示 我们编写一个Startup的监视代码 public class StartupAnalyzerContext : BaseAnalyzContext { private static DiagnosticDescriptor NotFindConfigureServices = new DiagnosticDescriptor("Class", "Startup", "未找到方法ConfigureServices", "Error", DiagnosticSeverity.Error, true); public override DiagnosticDescriptor[] SupportedDiagnostics => new