js代码

js中NAN、NULL、undefined的区别

痴心易碎 提交于 2020-02-28 15:46:21
NaN:保留字(表明数据类型不是数字) undefined:对象属性或方法不存在,或声明了变量但从未赋值。 即当你使用了对象未定的属性或者未定义的方法时或当你声明一个变量,但你确从未对其进行赋值,便对 其进行操作(当然赋值除外),会有"undefined"提示null 值指出一个变量中没有包含有效的数据。 产生 null 的原因是:对一个变量显式地赋值为 null。 包含 null 的表达式之间的任何操作。 Boolean 表达式 一个值为 true 或者 false 的表达式。 如果需要,非 Boolean 表达式也可以被转换为 Boolean 值,但是要遵循下列规则:所有的对象都被当作 true。 当且仅当字符串为空时,该字符串被当作 false。 null 和 undefined 被当作 false。 当且仅当数字为零时,该数字被当作 false。 字符串比较 两个字符序列之间的比较。 除非在进行比较操作的函数中指出,所有的字符串比较操作都是二进制的。 在英语中,二进制比较区分大小写;而文本比较则不区分。 数值表达式 数值表达式指的是任何值为数字的表达式。这种表达式的元素可以包括关键字、变量、文字和运算 符的任意组合,只要此组合能够生成一个数字。在特定的情况下,如果可以的话,字符串也可以被 转换为数字。 构造函数 一种 JScript 函数,具有两个特殊的性质:由 new

js json数据保存到本地

孤人 提交于 2020-02-28 14:49:42
转自:https://www.cnblogs.com/gamedaybyday/p/9906542.html 使用HTML5来实现本地文件读取和写入 (FileReader读取json文件,FileSaver.js保存json文件) w3school <input>标签 FileReader WebAPI接口 FileSaver.js下载地址 FileSaver.js介绍 JS创建、写入、读取本地文件(txt) (ActiveXObject 这玩意根本不能用,IE10 和 Chrome都试了) HTML 5中的文件处理之File Writer API (FileSaver和FileWriter都是不能直接修改保存指定文件的,只能生成一个文件,然后浏览器以"下载"的形式保存) 一、读取本地JSON文件 1. 首先使用标签<input>创建一个读取的按钮 2. 然后选择本地的json文件后使用FileReader读取json文件的内容,此时读取的结果是字符串 3. 将读取的结果字符串使用JSON.parse转为json格式,之后再使用 <div> <input type="file" id="files"/> </div> <script> var inputElement = document.getElementById("files"); inputElement

js设置元素class方法小结及classList相关

佐手、 提交于 2020-02-28 12:19:30
给DOM元素设置class是我们在项目中非常容易遇到的,网上的资料和总结也比较多,下面比较全面的整理一下,希望给到大家一些帮助!并引用两种成熟的classList的兼容方法 一、el.setAttribute('class','abc'); var div = document.getElementById('d1'); div.setAttribute("class", "abc"); 兼容:IE8/9/10/Firefox/Safari/Chrome/Opera支持 IE6/7不支持setAttribute('class',xxx)方式设置元素的class。 二、el.setAttribute('className', 'abc') var div = document.getElementById('d1'); div.setAttribute("className", "abc"); 兼容:IE6/7支持 IE8/9/10/Firefox/Safari/Chrome/Opera不支持setAttribute('className',xxx)方式设置元素的class。 三、el.className = 'abc'; var div = document.getElementById('d1'); div.className = 'abc'; 兼容:所有浏览器都支持。 四

Selenium 使用实例,爬取图片、浏览器截长图

南楼画角 提交于 2020-02-28 09:48:31
Selenium 使用实例,爬取图片、浏览器截长图 Selenium 使用实例 翻页爬取图片 滚动截取网页 Selenium 使用实例 翻页爬取图片 需要用到的模块 from selenium import webdriver #浏览器驱动 from selenium . webdriver . chrome . options import Options #设置 # 其他模块 import time import ssl import threading #多线程下载 import urllib . request #下载 import urllib . error #下载 携带配置、创建浏览器。 def browser_get ( ) : # 创建设置对象 chrome_options = Options ( ) # 向对象添加参数,手机模式。 chrome_options . add_experimental_option ( "mobileEmulation" , { "deviceName" : "Nexus 5" } ) # 向设置添加headless模式。 chrome_options . add_argument ( '--headless' ) # 设置驱动位置、传入设置对象 browser = webdriver . Chrome ( r 'F:\study

学习js和jQuery总结

别说谁变了你拦得住时间么 提交于 2020-02-28 07:54:34
数据类型的转换: 1.字符串必须放在引号内 2.字符串的转换有两个标签,string和tostring这两个函数。 3.变量必须使用驼峰形式, 把一个变量转换成字符串:console.log(isChild.toString()); 类型转换 1.除0之外的所有数字,转换为布尔型都为true 2.除“”之外的所有字符,转换为布尔型都为true 3.null和undefined转换为布尔型为false var x=1; console.log(Boolean(x)); 把字符串强制转换成布尔类型了。 算数运算符: 什么是表达式: 将同类型的数据(如常量,变量,函数)用运算符号按一定的规则连接起来,有意义的十字称为表达式。 三元操作符: 语法:条件?执行代码1;执行代码2 说明:可代替简单的if语句,如果条件成立,执行代码1,否则执行代码2 var soce=85; var result=(soce>=60)?"及格":“不及格”; console.log(result); 逻辑操作符: &&与操作符:所有条件都为true返回的也是true,一个条件为false结果为false 如果第一个操作数隐士类型的转换后为true,则返回第二个操作数。 如果第一个操作数隐士类型的转换后为false,则返回第一个操作数结果。 ||或运算符只要有一个条件成立,就为true。 条件语句:; if

js函数对象

ε祈祈猫儿з 提交于 2020-02-28 07:07:10
函数是进行模块化程序设计的基础,编写复杂的Ajax应用程序,必须对函数有更深入的了解。   javascript中的函数不同于其他的语言,每个函数都是作为一个对象被维护和运行的。通过函数对象的性质,可以很方便的将一个函数赋值给一个变量或者将函数作为参数传递。在继续讲述之前,先看一下函数的使用语法: 以下是引用片段: function func1(…){…} var func2=function(…){…}; var func3=function func4(…){…}; var func5=new Function();   这些都是声明函数的正确语法。它们和其他语言中常见的函数或之前介绍的函数定义方式有着很大的区别。那么在JavaScript中为什么能这么写?它所遵循的语法是什么呢?下面将介绍这些内容。   认识函数对象(Function Object)   可以用function关键字定义一个函数,并为每个函数指定一个函数名,通过函数名来进行调用。在JavaScript解释执行时,函数都是被维护为一个对象,这就是要介绍的函数对象(Function Object)。   函数对象与其他用户所定义的对象有着本质的区别,这一类对象被称之为内部对象,例如日期对象(Date)、数组对象(Array)、字符串对象(String)都属于内部对象

前端总结·基础篇·JS(四)异步请求及跨域方案

旧城冷巷雨未停 提交于 2020-02-28 04:55:27
前端总结系列 前端总结·基础篇·CSS(一)布局 前端总结·基础篇·CSS(二)视觉 前端总结·基础篇·CSS(三)补充 前端总结·基础篇·JS(一)原型、原型链、构造函数和字符串(String) 前端总结·基础篇·JS(二)数组深拷贝、去重以及字符串反序和数组(Array) 前端总结·基础篇·JS(三)arguments、callee、call、apply、bind及函数封装和构造函数 前端总结·基础篇·JS(四)异步请求及跨域方案 前端总结·工具篇·管理(一)常用模块化方案 目录 一、异步请求 1.1 XHR(XMLHttpRequest) 1.2 Promise(ES6) 1.3 Fetch 二、跨域方案 2.1 JSONP(JavaScript Object Notation with Padding) 2.2 CORS(Cross-origin resource sharing) 一、异步请求 此文只进行简单的介绍,完整的用例请见我的 Github 。Github上的用例,对这三种方法的POST和GET请求都进行了封装。 Github演示不支持POST请求,所以会有部分报错。完整测试可以放在本机的localhost下。 a.json ------------- { "user":"张三", "folling":30, "foller": 20 } 1.1 XHR

gulp + webpack 构建多页面前端项目

戏子无情 提交于 2020-02-28 03:10:10
修改增加了demo地址 gulp-webpack-demo 之前在使用gulp和webpack对项目进行构建的时候遇到了一些问题,最终算是搭建了一套比较完整的解决方案,接下来这篇文章以一个实际项目为例子,讲解多页面项目中如何利用gulp和webpack进行工程化构建。本文是自己的实践经验,所以有些解决方案并不是最优的,仍在探索优化中。所以有什么错误疏漏请随时指出。 使用gulp过程中的一些问题,我已经在另外一篇文章讲到了 grunt or gulp 前言 现在为什么又整了一个webpack进来呢? 我们知道webpack近来都比较火,那他火的原因是什么,有什么特别屌的功能吗?带着这些疑问,继续看下去。 在使用gulp进行项目构建的时候,我们一开始的策略是将所有js打包为一个文件,所有css打包为一个文件。然后每个页面都将只加载一个js和一个css,也就是我们通常所说的 ==all in one== 打包模式。这样做的目的就是减少http请求。这个方案对于简单的前端项目来说的是一个万金油。因为通常页面依赖的js,css并不会太大,通过压缩和gzip等方法更加减小了文件的体积。在项目最开始的一段时间内(几个月甚至更长),一个前端团队都能通过这种办法达到以不变应万变的效果。 然而,作为一个有追求(爱折腾)的前端,难道就满足于此吗? 妈妈说我不仅要请求合并,还要按需加载,我要模块化开发

js运动

孤者浪人 提交于 2020-02-28 02:18:09
一.为什么要学习运动框架 ​ 在我们进行web页面开发的过程中,如何与用户进行友好、有趣的交互,是我们必须考虑的问题。 比如:导航条中滑动的动画特效、点击加入购物车按钮通过抛物线加入右侧购物车的动画特效,当然还有一些网页游戏的开发:微信打飞机、打砖块等。 那么我们要实现这些好玩又有趣的动画,就需要我们对动画的基础【运动】炉火纯青. 二.js运动原理 ​ 运动原理,其实从实际上来说,就是页面上的元素,在dom页上动起来,要想让元素动起来,那有哪些方式呢,比如我们通过改变元素自身的offsetLeft和offsetTop属性,以及,自身的宽高,上下左右的边距和透明度等等.动画的原理就是把不同的画面,通过一定的速度运转,串起来,形成动画,js动画也一样,不同状态的DOM,用定时器控制,就能得到动画效果. ​ 方法: ​ 1.运动的物体使用绝对定位 ​ 2.通过改变定位物体的属性(left、right、top、bottom)值来使物体移动。例如 ​ 向右或左移动可以使用offsetLeft (速度为负值可以控制向左移动)来控制左右移动。 ​ 步骤: ​ 1、开始运动前,先清除已有定时器 (因为:是连续点击按钮,物体会运动越 ​ 来越快,造成运动混乱) ​ 2、开启定时器,计算速度 ​ 3、把运动和停止隔开(if/else),判断停止条件,执行运动 ​ ​ ​ 我这里直接用的是ES6的语法

JS 中 new 操作符

跟風遠走 提交于 2020-02-28 01:25:15
var obj = new Object(); //创建新对象 一. new是干嘛的? new操作符用来生成一个新的对象, 它后面必须跟上一个函数(否则, 会抛出TypeError异常), 这个函数就是我们常说的构造函数. 二. new操作构造函数生成实例的过程 (1) 首先, 当我们使用new操作符时, js会先创建一个空的对象; (2) 然后, 构造函数中的this指向该空对象; (3) 其次, 在构造函数中通过操作this, 来给这个空对象赋予相应的属性; (4) 最后, 返回这个经过处理的"空对象"(此时, 对象已经不是空的了). 三. new操作构造函数的注意事项 (1) 如果构造函数的返回值是一个原始类型(非引用对象, 如字符串), 那么返回值为new创建的"空对象", 如: var obj = new function() { return "code";}; alert(obj); // [object object] console.log(obj); //{} (2) 如果构造函数的返回值是一个引用对象(数组, 对象, 函数等), 那么返回值会覆盖new创建的"空对象", 如: var obj = new function() { return new String("code"); }; alert(obj); // "code"console.log(obj