2023年7月20日

JavaScript: js 正则表达式

正则表达式是描述一组字符串特征的模式,用来匹配特定的字符串,以下从基本语法、RegExp对象的方法、JS中支持正则表达式的String对象方法三个部分对 javascript 正则表达式做基本介绍。 一、基本语法 在 JS 中,正则表达式为对象,用如下两种方式定义: 直接量法: /pattern/attributes; 创建 RegExp 对象法:new RegExp (pattern,attributes); var reg=/hi/i;//字面量 var reg=new RegExp('hi','i');//构造函数(参数1:最简单的正则匹配字母hi;参数2:表示匹配时不分大小写) 正则表达式修饰符 修饰符 可以在全局搜索中不区分大小写: 修饰符 描述 i 执行对大小写不敏感的匹配 g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止) m 执行多行匹配 二、R…
2023年7月19日

JavaScript: js KeyboardEvent.key 的用法

定义和用法 key 属性返回发生按键事件时按下的键的标识符。 按键标识符是标识键盘按钮的字符串。此属性的返回值可以是以下字符串: 单个字符(比如 "a", "W", "4", "+" 或 "$") 多字符(比如 "F1", "Enter", "HOME" 或 "CAPS LOCK") 注释:该属性只读。 提示:如果您想知道在发生按键事件时是否按下了 "ALT"、"CTRL"、"META" 或 "SHIFT" 键,请使用 altKey、ctrlKey、metaKey 或 shiftKey 属性。 语法 event.key 技术细节 返回值: 字符串,代表按下的键盘按钮。 可能的值: 单个字符(比如 "a", "W", "4", "+" 或 "$") 多字符(比如 "F1", "Enter", "HOME" 或 "CAPS LOCK") 注释:在 Safari 中返回未定义。 DOM 版本: DOM Level 3 Key V…
2023年7月19日

JavaScript: js 条件运算符( ? : )

条件运算符是唯一的三元运算符,其语法格式如下: b ? x : y b 操作数必须是一个布尔型的表达式,x 和 y 是任意类型的值。 如果操作数 b 的返回值为 true,则执行 x 操作数,并返回该表达式的值。 如果操作数 b 的返回值为 false,则执行 y 操作数,并返回该表达式的值。 定义变量 a,然后检测 a 是否被赋值,如果赋值则使用该值;否则设置默认值。 复制纯文本复制 var a = null; //定义变量a typeof a != "undefined" ? a = a : a = 0; //检测变量a是否赋值,否则设置默认值 console.log(a); //显示变量a的值,返回null var a = null; //定义变量a typeof a != "undefined" ? a = a : a = 0; //检测变量a是否赋值,否则设置默认值 console.log(a); /…
2023年7月19日

JavaScript: js判断是否功能键

JavaScript判断是否功能键 window.isCtrlKey = function (keyCode) { // 8        - 退格 // 9        - Tab // 13       - 回车 // 16~18    - Shift, Ctrl, Alt // 37~40    - 左上右下 // 35~36    - End Home // 46       - Del // 112~123  - F1-F12 switch (keyCode) { case 8: case 9: case 13: case 16: case 17: case 18: case 37: case 38: case 39: case 40: case 35: case 36: case 46: return true; default: if (keyCode >= 112 && keyCode <= 123) { re…
2023年7月18日

JavaScript: bind()方法

Function.prototype.bind()方法 bind()方法主要就是将函数绑定到某个对象,bind()会创建一个函数,函数体内的this对象的值会被绑定到传入bind()第一个参数的值,例如,f.bind(obj),实际上可以理解为obj.f(),这时,f函数体内的this自然指向的是obj 用法 例子 var a = { b : function(){ var func = function(){ console.log(this.c); } func(); }, c : 'Hello!' } a.b(); //undefined 注意:这里的this指向的是全局作用域,所以会返回undefined var a = { b : function(){ var that = this; var func = function(){ console.log(that.c); } fun…
2023年7月18日

在addEventListener时为具名函数传递参数

最近在做一个基于Vue的组件,之间要用到通过addEventListener绑定鼠标事件,但遇到一个比较恶心的问题。就是需要在绑定匿名函数时候传递参数,当然,这个很容易,但是当你要动态移除掉这个匿名函数时就很麻烦了。 起因 有如下代码: // bind event element.addEventListener('click', _bindEventHandler) // unbind event element.removeEventListener('click', _bindEventHandler) 我如果在使用具名函数传递参数呢? 当然可以这样: element.addEventListener('click', function() { _bindEventHandler(param1, param2) }) 但,这样有个问题就是,我如果…
2023年7月10日

HTML / JavaScript / CSS 单行注释 多行注释

HTML 注释: <!-- <p>这是单行注释</p> --> <!-- 这是多行注释 这是多行注释 这是多行注释 --> JS/jQuery 注释: //这是单行注释 /* 这是多行注释 这是多行注释 这是多行注释 */ CSS 注释: /*这是单行注释*/ /* 这是多行注释 这是多行注释 这是多行注释 */…
2022年10月28日

JavaScript: 字符串反转的几种方式

第一种: 字符串转数组,反转数组,数组转字符串。 split(""):根据空字符串拆分数组 reverse():数组反转元素位置 join(""):数组转回字符串,且不带分隔符 let str = "hello world"; let newStr = str.split("").reverse().join(""); console.log(newStr); 第二种: 定义新的空字符串,遍历str,charAt()是取字符串的一个字符(charAt() 方法可返回指定位置的字符。),先去最后一个字符,再取倒数第二个…以此类推。都放到新的字符串前面。这样就是倒序的了. let str = "hello world"; let newStr = ""; for(let i=0;i<i.length;i++){ let s = str.charAt(str.length-…
2022年10月11日

JavaScript: DOM操作 (创建、增、删、改、查、属性操作、事件操作)

关于dom操作,我们主要针对于元素的操作。主要有创建、增、删、改、查、属性操作、事件操作。 1.创建 1.document.write 2.innerHTML 3.createElement 2.增加 1.appendChild 2.insertBefore 3.删除 1.removeChild 4.改 主要修改dom的元素属性,dom元素的内容、属性、表单的值等 1.修改元素属性:src、herf、title等 2.修改普通元素内容:innerHTML、innerText 3.修改表单元素:value、type、disabled等 4.修改元素样式:style、className 5.查 主要查询dom的元素 1.dom提供的API方法:getElementById、getElementsByTagName 2.H5提供的新方法:querySel…
2022年9月11日

JavaScript: !function

!function跟(function(){... })();函数意义相同,叫做立即运行的匿名函bai数(也叫立即调用函数)。 js中可以这样创建一个匿名函数: (function(){do something...})() //或 (function(){do something...}())   而匿名函数后面的小括号()是为了让匿名函数立即执行,其实就是一个函数调用。 这样写会报错: function(){alert(1)}() 因为function前面没有(或者! ~之类的运算符,js解析器会试图将关键字function解析成函数声明语句,而不是函数定义表达式。 作为组运算符,小括号()会将其内部的表达式当成一个整体,然后返回结果,所以定义一个匿名函数正确的格式就是用小括号将函数体括起来。 同样的! ~ + -等运算符也有同…