js代码

JS 无法清除Cookie的解决方法

≡放荡痞女 提交于 2020-01-13 13:46:02
项目中使用sdmenu.js时,需要在登录时清除Cookie,而sdmenu默认是会保存Cookie的 下面是sdmenu.js保存Cookie的方法 document.cookie = "sdmenu_" + encodeURIComponent(this.menu.id) + "=" + states.join("") + "; expires=" + d.toGMTString() + "; path=/"; 下面是我到网上找的清除Cookie的方法,始终都无法删除Cookie 1、传递Cookie名称 function deleteCookie(name){ var date=new Date(); date.setTime(date.getTime()-10000); document.cookie=name+"=v; expire="+date.toGMTString()+"; path=/"; 2、循环删除所有Cookie // js 遍历所有Cookie function foreach() { var strCookie=document.cookie; var arrCookie=strCookie.split("; "); // 将多cookie切割为多个名/值对 for(var i=0;i <arrCookie.length;i++) { //

JS中 !/+/-/~function(){}()是什么意思?

做~自己de王妃 提交于 2020-01-13 13:26:30
自动执行匿名函数: 常见格式: function(){/ code /}(); 解释:包围函数(function(){})的第一对括号向脚本返回未命名(匿名)的函数,随后一对空括号立即执行返回的未命名函数,括号内为匿名函数的参数 作用:创建一个命名空间只要把自己所有的代码都写在这个特殊的函数包装内,那么外部就不能访问,除非你允许(变量前加上window,这样该函数或变量就成为全局)。各JavaScript库的代码也基本是这种组织形式。 总结一下,这个函数的主要目的是 匿名 和 自动执行 。代码在被解释时就已经执行了。 其他格式: 1. function(){…}(); 2. !function(){…}(); 3. -function(){…}(); 4. ~function(){…}(); 5. +function(){…}(); 来源: CSDN 作者: 唯尘 链接: https://blog.csdn.net/qq_42839596/article/details/103955954

用JS实现对栈的操作

不问归期 提交于 2020-01-13 09:58:40
用JS实现对栈的操作 栈的结构:栈底、栈顶(栈是一种后入先出的结构)lifo(last_in_first_out) 栈的操作:入栈、出栈 栈的方法: push //栈顶添加元素 pop // 拿出栈顶元素 peek // 查看栈顶元素 isEmpty // 检查栈是否为空 clear // 移除栈的全部元素 size //获取栈的长度 下面通过Js模拟对于栈的操作,对栈有一个比较直观的感受 构造一个栈的结构 函数自带两种功能,一种是函数,一种是构造器 函数内部使用 this,则this指向构造的对象,因此在如下结构中若是用this则是定义一种共有方法或变量 var Stack = function ( ) { var item = [ ] // 栈顶添加元素 this . push = function ( element ) { item . push ( element ) } // 拿出栈顶元素 this . pop = function ( ) { return item . pop ( ) ; } // 查看栈顶元素 this . peek = function ( ) { return item [ item . length - 1 ] } // 清空栈元素 this . clear = function ( ) { item = [ ] } // 检查栈是否为空

Js注释

走远了吗. 提交于 2020-01-13 06:33:34
注释 介绍 作用 合作分享:方便他人阅读,便于分享 沉淀总结:容易忘记代码,自己总结沉淀 形式 1.// 双斜杠 2./**/斜杠星号 常用标签 标签 描述 @module 标明当前文件模块,在这个文件中的所有成员将被默认为属于此模块,除非另外标明 @submodule 针对模块的划分,处于@module之下 @class 标示一个类或者一个函数 @constructor 当使用对象字面量形式定义类时,可使用此标签标明其构造函数 @callback 标明此方法是一个回调函数 @event 标明一个可触发的事件函数,一个典型的事件是由对象定义的一组属性来表示。 @constant 常量标识 @member/@var 记录一个基本数据类型的成员变量 @method 标记一个方法或函数 @param 标记方法参数及参数类型 @property 标明一个对象的属性 @readonly 只读 @return 标明返回值、类型及描述 @type 描述代码变量的类型 @description 如果在注释开始描述可省略此标签 @enum 一个类中属性的类型相同时,使用此标签标明 @example 示例,代码可自动高亮 @exports 标识此对象将会被导出到外部调用 @ignore 忽略此注释块 @link 内联标签,创建一个链接,如 `{@link http://github.com

JS 简介

限于喜欢 提交于 2020-01-13 06:13:42
JS 简介 JavaScript 是世界上最流行的编程语言。 这门语言可用于 HTML 和 web,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。 avaScript 是脚本语言 JavaScript 是一种轻量级的编程语言。 JavaScript 是可插入 HTML 页面的编程代码。 JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。 JavaScript 很容易学习。 JavaScript:写入 HTML 输出 document.write("<h1>This is a heading</h1>"); document.write("<p>This is a paragraph</p>"); 您只能在 HTML 输出中使用 document.write。如果您在文档加载后使用该方法,会覆盖整个文档。 JavaScript:对事件作出反应 <button type="button" onclick="alert('Welcome!')">点击这里</button> alert() 函数在 JavaScript 中并不常用,但它对于代码测试非常方便。 JavaScript:改变 HTML 内容 使用 JavaScript 来处理 HTML 内容是非常强大的功能。 x=document.getElementById("demo") //查找元素

分享一个博客园皮肤制作脚手架

痞子三分冷 提交于 2020-01-13 01:58:20
前言 最近本着新年新气象的想法,想换套新的博客园皮肤。 之前自己做了一套制作皮肤的解决方案,这是当时分享皮肤以及解决方案的博客: 分享一款博客园皮肤及其解决方案 。 不过在制作新的皮肤过程中,使用这个解决方案时还是遇到了很多问题。 而为了更方便地制作新皮肤,就升级了原先的解决方案,搭建了这套博客园皮肤制作脚手架。 项目地址已从github换到了码云: https://gitee.com/vvjiang/cnblogs-skin 。 具体的使用方式项目文档有介绍,这里就不赘述了,接下来主要是讲脚手架解决了什么问题以及解决方法。 原先的方案以及遇到的问题 原先的解决方案其实很简单,将css写在不同的less文件中,然后用 webpack-dev-server 保证本地开发。 在需要build最终的css时,通过 mini-css-extract-plugin 提取样式到最终的css文件中。 自定义js部分,就是一个单独的文件,在开发环境下通过引用这个文件来处理,构建时不需要这个文件,直接复制粘贴到博客园后台即可。 现在说一说原有方案遇到的一些问题: 没有压缩css和js。早期时还好,但是到了后面功能变多,js和css文件体积在逐渐膨胀。 博客园的脚本功能,实际上是通过script元素包裹的html元素,而且有的功能需要自己的html元素

JS逆向 | 原来,大家对于atob和btoa都有误解?不止base64这么简单!

坚强是说给别人听的谎言 提交于 2020-01-13 01:14:16
声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢! 引言  故事是这样的,有位读者朋友需要模拟登录一个网站:  aHR0cDovL3d3dy56bGRzai5jb20v  我进去一看,很简单啊,不就是RSA加密么?  一顿操作猛如虎,把涉及RSA的全部扣下来,然后用Python的base64.b64encode代替 btoa 函数调用即可(由于这里的RSA加密为NoPadding模式,因此对相同明文加密返回的密文都是相同的。RSA的具体相关不在本文讨论范围之内,后面会再出详细教程),结果对比如下:  嗯?为什么结果不一样?检查过代码,确定并没有检查浏览器环境啥的,翻车了…  恰在这时候,又一位读者问了我一个问题,为啥下面这两个也会不一样?有兴趣的可以自行试一下: "IcORUmfDlcOPDsOSwr06fMKgBMKcTQ=="  难道JS的 atob 和 btoa,不等于Python的base64中的 b64decode 和 b64encode 么? 原理分析  想直接看答案的可以跳过此部分。  btoa和atob是window对象的两个函数,其中btoa是binary to ASCII,用于将binary的数据用ASCII码表示,即Base64的编码过程,而atob则是ASCII to binary,用于将ASCII码解析成binary数据

React 基础 day01

China☆狼群 提交于 2020-01-13 00:55:15
React 与 Vue 对比 什么是模块化: 从代码的角度, 去分析问题, 把我们编程的业务逻辑, 分割到不同的模块中进行开发, 这样能够方便代码的重用 ; 什么是组件化: 从 UI 的角度去分析问题, 把一个页面拆分为一些互不相干的小组件, 随着项目的开发, 手里的组件会越来越多, 最后如果要实现一个页面, 可能直接把现有的组件那过来进行拼接, 就能快速得到一个完整的组件, 这样方便了 UI 组件的重用 ; Vue如何实现组件化: .vue 模板文件, 浏览器不识别, 在运行前会预先编译成真正的组件 React如何实现组件化: 直接使用 JS 代码的形式, 去创建你想要的组件 React 中几个核心概念 虚拟Dom (Virtual Document Object Model) DOM的本质是什么: 就是用 JS 表示的 UI 元素 ; DOM和虚拟DOM的区别: DOM是浏览器中JS提供功能, 所以只能使用浏览器提供固定的 API 操控 ; 虚拟DOM并不是由浏览器提供的, 而是我们手动模拟实现的, 类似于浏览器中的DOM, 但是有着本质的区别 ; 为什么要实现虚拟DOM: 为了实现DOM节点的高效更新 ; 创建 React 项目 安装相关包 // 这个包是专门用来创建 React 组件, 组件生命周期等 npm install react -S // 这个里面主要封装了和

js DOM(二)获取元素的方式、innerText、textContent、innerHTML、自定义属性

[亡魂溺海] 提交于 2020-01-12 22:58:11
目 录: 1. 案例:阻止超链接默认跳转行为 2. 案例:相册 3. 案例:列表隔行变色 4. 案例:列表鼠标进入高亮显示(鼠标进入和鼠标移出事件) 5. 显示和隐藏二维码 6. 通过name属性获取元素(表单标签才有那么属性) 7. 根据类样式的名字获取元素 8. 其他获取元素的方式 9. 案例:div的高亮显示(鼠标进入边框高亮) 10. 案例:模拟搜索框(获取焦点和失去焦点) 11. 封装innerText和textContent 12. innerText和innerHTML的区别 13. 自定义属性 14. 案例:tab切换 1. 案例:阻止超链接默认跳转行为 <--返回目录 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>标题</title> </head> <body> <!-- 阻止超链接默认跳转行为,第一种写法--> <a href="http://www.baidu.com" onclick="return false;">百度</a><br/> <!-- 阻止超链接默认跳转行为,第二种写法--> <a href="http://www.baidu.com" onclick="return fun();">百度</a> <script type="text/javascript">

JS 字典

旧时模样 提交于 2020-01-12 20:52:55
字典 定义:Dictionary 类的基础是Array类 抽象实现 一个存放数据的集合Array 新增 Add 删除 remove 包含 contains 代码实现 function Dictionary() { this.dataStore = []; this.add = add; this.remove = remove; this.display = display; this.count = count; this.contains = contains; } function add(key, value) { this.dataStore[key] = value; } function remove(key) { delete this.dataStore[key]; } function count() { var num = 0; Object.keys(this.dataStore).forEach(function (key) { num++; }); return num; } function display() { var data = this.dataStore var strHtml = Object.keys(data).sort().map(function (key) { return "key:" + key + ",value:" +