JavaScript
记录原生JS的学习
百香果果ccc
这个作者很懒,什么都没留下…
展开
-
解决利用<input type=“file“>上传文件时,value拿到的是fakePath问题
问题:上传文件之后,直接获取input.value是fakePath路径,因此不能通过此路径访问到文件。若不想修改系统配置,可利用js代码解决。原创 2023-02-28 15:15:23 · 1407 阅读 · 6 评论 -
MVC和MVVM架构模式区别
③ 但是Controller无法监听View变化改变Model,需要程序员手动去实现双向数据绑定。② Controller是控制器,可以实时监听Model中数据的变化,来动态改变View视图。④ ViewModel也可以实时监听View视图的变化,来动态改变Model中的数据。③ ViewModel可以实时监听Model中的数据,来动态改变View视图。② ViewModel充当Model和View中间的桥梁。原创 2022-11-25 16:38:19 · 111 阅读 · 0 评论 -
JS中的setter、getter数据存取器
②对象已存在的情况下,利用Object.defineProperty方法追加存取器属性及特性。3.利用Object.getOwnPropertyDescriptor()方法获取属性的特性。最大的特点是在设置、获取属性值的时候。只是简单存储了一个值。设置存取器属性的两种方式。JS属性可分为两种类型。① 直接在对象中设置。原创 2022-11-25 11:43:29 · 693 阅读 · 0 评论 -
JS中的闭包
① 函数嵌套函数② 内部函数使用外部函数的形参/变量(这些形参/变量就会常驻内存,不会被垃圾回收机制删除)优点① 变量常驻内存② 避免全局变量污染原创 2022-11-23 15:54:39 · 96 阅读 · 0 评论 -
JS本地存储技术
② domain必须与当前页面加载的域名一致,如果不一致,则cookie设置失败。① 不设置secure,http/https协议加载的页面都可以设置cookie。② 设置secure,只有https协议加载的页面才可以设置cookie。② path必须与当前页面加载的路径一致,如果不一致,则访问不到。③ 最大可存储4KB,最多可存储50条数据。① 不设置的话,默认为当前页面加载的路径。① 不设置的话,默认为当前页面加载的域名。① 只有关闭整个浏览器,数据才会清除。① 永久存储、除非手动删除。原创 2022-11-23 14:25:25 · 250 阅读 · 0 评论 -
JSONP解决跨域问题
接口返回的是回调函数调用的格式,将script标签插入到body中时,就会调用getWeather方法,将天气信息通过参数传入。② 网络请求时,只能访问同源的接口,这样是为了安全,以不至于别人能随便访问自己的私有数据。如果我们想使用一些网上公用的API(比如:获取天气API),就不得不跨域。原理:利用script标签上的src属性没有跨域的问题。当前地址与调用的接口不同源时,会跨域。① 协议、域名、端口号一致视为同源。原创 2022-11-21 17:31:39 · 254 阅读 · 0 评论 -
JS中的前后端交互技术ajax
异步的javaScript和数据传输,数据传输格式分为XML和JSON两种,各有优缺点,一般使用JSON格式;实现前后端交互的四步骤:1、声明ajax对象;2、预设请求方式、访问地址、是否异步;3、发送请求;4、监听状态变化原创 2022-11-17 15:37:22 · 568 阅读 · 0 评论 -
JS构造函数与class类中的封装、继承和多态
当访问对象的某个属性时,会先在这个对象的本身属性上查找,如果找不到,则会去__proto__指向的构造函数的prototype原型对象上查找,如果找不到,则再去构造函数的prototype原型对象的__proto__中查找,这样一层一层向上查找就会形成一个链式结构,称为原型链,最终会指向null。构造对象上面的__proto__都指向当前构造函数的prototype,它们指向的地址是一样的,所以声明在prototype上的函数能被所有构造对象访问到!从父级继承过来的属性和方法或。原创 2022-11-06 21:35:04 · 966 阅读 · 0 评论 -
JS解构赋值
② 给函数形参赋值时,可不关心顺序,同时也可设置默认值。按顺序依次赋值,多余的变量设为undefined。无顺序,只要属性名匹配就行,也可重命名。将字符串分割成单个的字符依次为变量赋值。① 交换两个变量的值。原创 2022-11-06 14:18:41 · 332 阅读 · 0 评论 -
JS中的箭头函数
② 箭头函数与数组的forEach、filter、map、some、every等方法配合起来用的比较舒服。① 箭头函数没有this,系统会把this当做一个变量,向上级作用域中去查找,最终会指向window。② 箭头后面没写大括号,如果需要返回一个值,直接写需要返回的变量即可(省略了return)① 箭头后面写了大括号的话,如果需要返回一个值,要写return关键字。① 箭头函数在某些地方不建议使用,因为可能会降低代码的可读性。② 箭头函数中没有arguments对象。③ 箭头函数不能用new调用。原创 2022-11-06 13:28:18 · 1370 阅读 · 0 评论 -
JS中var、let、const关键字区别
var在函数、全局作用域中生效;let、const在块级作用域中生效。var声明的变量挂载在window对象上,而let、const不会。let、const存在暂时性死区的问题,且不能重复声明。var存在声明提升;let、const不存在声明提升。const声明常量,一旦声明必须赋值。原创 2022-11-06 00:06:13 · 105 阅读 · 0 评论 -
JS强制改变this指向的方法
① 格式:函数名.call(p1, p2, p3…① 格式:函数名.apply(p1, p2);③ 参数p2之后:原来的实参依次往后错一位。③ 参数p2:数组,放入原来所有的实参。④ 返回值:已经改变this指向的函数。② 参数p1:this想要指向的对象。② 参数p1:this想要指向的对象。② 格式:函数名.bind(p1);③ 参数p1:this想要指向的对象。① 功能:预设this指向。原创 2022-11-05 22:31:50 · 88 阅读 · 0 评论 -
JS正则表达式
⑤ \W:匹配单个的非数字、字母、下划线(与[^0-9a-zA-Z_]等价)返回值:匹配成功:返回一个装有字符串的数组;④ \w:匹配单个的数字、字母、下划线(与[0-9a-zA-Z_]等价)⑦ \D:匹配单个的非数字(与[^0-9]等价)③ [^范围]:匹配单个没在中括号范围内的字符。⑪ x{m,n}:匹配最少m个,最大n个x字符。⑥ \d:匹配单个的数字(与[0-9]等价)② [范围]:匹配单个在中括号范围内的字符。⑫ x{n}:必须匹配n个x字符。⑨ x+:至少匹配1个x字符。原创 2022-11-05 18:10:29 · 354 阅读 · 0 评论 -
JS事件监听器
给一个元素的某一个事件类型添加多个函数;精确删除某一个事件类型下的某一个函数原创 2022-11-04 16:07:29 · 465 阅读 · 0 评论 -
JS事件委托
利用事件冒泡的特性,将本应该注册在子元素上的处理事件注册在父元素上,这样点击子元素时发现其本身没有响应的事件,就到父元素上寻找并作出响应。② 随时可以添加子元素,添加的子元素会自动有响应的处理事件。① 减少DOM操作,提高性能。原创 2022-11-04 15:06:31 · 112 阅读 · 0 评论 -
JS三种获取浏览器宽高的区别
【DOM区域宽高,不包括横纵滚动条】【DOM区域宽高,包括横纵滚动条】【body的实际宽高】原创 2022-11-04 14:38:24 · 78 阅读 · 0 评论 -
JS事件冒泡、事件捕获、阻止默认行为
【代码】JS事件冒泡、事件捕获、阻止默认行为。原创 2022-11-04 11:30:35 · 122 阅读 · 0 评论 -
JS中的事件对象及属性
比如:ul绑定了一个点击事件,鼠标点击ul上的li,则此时的target指向这个li,this指向ul。【返回值:当前按下字母的ASCII码值,区分大小写】【返回值:大写字母的ASCII码值,不区分大小写】【只在keypress事件类型下生效】【只在keydown事件类型下生效】⑤ charCode字符码。事件由谁引起的,就指向谁。④ keyCode键码。② 获取当前鼠标位置。③ 是否按下了控制键。原创 2022-11-02 18:16:02 · 580 阅读 · 0 评论 -
JS鼠标、键盘、window、表单的事件类型
绑定事件格式:node.on + 事件类型 = 事件处理函数。鼠标、键盘、window、表单事件类型原创 2022-11-02 13:48:51 · 227 阅读 · 0 评论 -
JS通过offset系列属性获取实际看到的元素样式
JS通过offset系列属性获取实际看到的元素样式。原创 2022-11-02 10:39:29 · 78 阅读 · 0 评论 -
JS节点操作的一些方法
JS节点操作的一些方法增删改createElement、createTextNode、appendChild、insertBefore、replaceChild、cloneNode、removeChild、remove原创 2022-11-01 15:35:34 · 205 阅读 · 0 评论 -
JS元素节点的一些属性和获取元素子节点的方法
node.nodeType、node.nodeName、node.nodeValue;childNodes、firstChild、lastChild、nextSibling、previousSibling、parentNode、children、firstElementChild、lastElementChild、nextElementSibling、previousElementSibling、parentElement原创 2022-11-01 14:26:46 · 333 阅读 · 0 评论 -
JS中attribute的一些方法
方式,只是把属性值设为空了,并没有删除】方式,也能设置成功,但在行间不可见】【获取属性,自定义属性也能获取】方式获取,但不能获取自定义属性】【设置属性,在标签行间可见】【删除属性,真正意思上删除】原创 2022-11-01 12:58:32 · 1596 阅读 · 0 评论 -
JS获取节点的有效样式
JS获取节点的有效样式。node.style.属性名;node.currentStyle[属性名];getComputedStyle(node)[属性名]原创 2022-11-01 10:14:54 · 393 阅读 · 0 评论 -
JS中数组的冒泡排序和选择排序
冒泡排序和选择排序原创 2022-10-28 15:50:43 · 76 阅读 · 0 评论 -
JS中的递归
JS中的递归,函数自己调用自己原创 2022-10-28 10:54:40 · 128 阅读 · 0 评论 -
JS中的arguments对象
JS中的arguments对象。每个函数中内置了arguments对象,伪数组,用来存储实际传入的参数原创 2022-10-28 10:07:31 · 84 阅读 · 0 评论 -
JS通过年、月、日计算是这一年的第多少天和第几周
【代码】JS通过年、月、日计算是这一年的第多少天和第几周。原创 2022-10-27 17:21:42 · 106 阅读 · 0 评论 -
JS中的一些运算符
JS中的一些运算符。算术运算符、赋值运算符、一元运算符、关系运算符、逻辑运算符、三目运算符原创 2022-10-27 11:15:28 · 100 阅读 · 0 评论 -
二进制与八、十、十六进制互相转换
例如:将十六进制数367转为二进制为1101100111。例如:将八进制数367转为二进制为11110111。例如:将二进制数1001010转为八进制为112。例如:将二进制数1001010转为十六进制为4a。例如:将十进制数52转为二进制为110100。例如:将二进制数110101转为十进制为53。原创 2022-10-25 15:31:00 · 1638 阅读 · 0 评论 -
JS获取DOM元素节点的一些方法
通过选择器获取满足条件的第一个元素。通过选择器获取所有满足的元素。通过name属性获取。原创 2022-09-23 15:30:03 · 120 阅读 · 0 评论 -
JS操作BOM的一些方法
alert()、confirm()、prompt()、open()属于window中的方法,均可在方法前面加window,不加也可。英文:protocol://hostname:port/pathname/?中文:协议://主机名:端口号/路径/?效果:点击“关闭百度”按钮,百度浏览器窗口被关闭。【弹出带输入框、确定、取消的对话框】【弹出带确定、取消按钮的对话框】【弹出只有确定按钮的对话框】【打开新浏览器窗口】原创 2022-09-22 18:03:54 · 254 阅读 · 0 评论 -
JS强制数据类型转换
【向下取整、若是字符串且数字在头字母在后,取出数字中的整数部分】【纯数字转为数字,非纯数字转为NaN】【非0及真,非空及真】原创 2022-09-22 16:31:01 · 428 阅读 · 0 评论 -
JS数据类型
not a number 表示“不是一个数字“,却是number类型。检测数组:Array.isArray()将变量赋值为null时,才为null。检测引用类型:instanceof。b) 2e5:2×10的五次方。c) 0x100:16进制数字。d) 0o100:8进制数字。e) 0b100:2进制数字。检测所有类型:typeof。原创 2022-09-22 16:00:15 · 83 阅读 · 0 评论 -
javaScript数组的常用方法
声明:let arr = new Array();1、push()格式:arr.push(p1, p2…);功能:向数组的末尾添加元素返回值:push完之后数组的长度2、pop()格式:arr.pop();功能:从数组的末尾取下一个元素返回值:取下的那个元素3、shift()格式:arr.shift();功能:从数组的头部取下一个元素返回值:取下的那个元素4、unshift()功能:向数组的头部添加一个元素返回值:unshift之后数组的长度5、conca.原创 2021-12-23 18:32:11 · 531 阅读 · 0 评论 -
javaScript字符串的常用方法
声明:let str = new String();1、charAt()说明功能获取相应下标的字符格式str.char(下标);返回值字符2、charCodeAt()说明功能获取相应下标的字符的ASCII码值格式str.charCodeAt(下标);返回值ASCII码值3、fromCharCode()说明功能将传入的ASCII码值转成对应的字符格式String.fromCharC.原创 2021-12-24 15:35:18 · 228 阅读 · 0 评论