js
文章平均质量分 59
胡鹤婷
努力靠近理性的工科产品胡
展开
-
NaN
NaN属性代表非数字值得特殊值,该属性用于表示某个值不是数字。可以把Number对象设置为该值,来指示其不是数字值。 isNaN()全局函数用来判断一个值是否是NaN值NaN意味着“不是数字”,但是它的类型是 numberNaN与所有的值都不相等,包括它自己所以判断一个值是否是NaN,我们可以使用value !== value,如果值等于NaN,只会产生true,另外ES6提供了一个...原创 2018-05-02 22:20:49 · 1830 阅读 · 0 评论 -
表单提交及后台数据接收
用POST请求,后台原生接收的一个公式:req.addListener("data",function(chunk){ alldata += chunk;})//当全部传输完毕之后req.addListener("end",function(){ console.log(alldata,toString()); req.end("success");})现...原创 2017-11-30 11:49:26 · 57249 阅读 · 2 评论 -
req.body,req.query,req.params,req.param()取参数
nodejs的express框架为我们提供了四种方法来实现获取请求中的参数:1.req.body 2.req.query 3.req.params 4.req.param()1.req.body通常用来解析POST请求中的数据 req.body不是nodejs默认提供的,需要载入中间件body-parser中间件才可以使用req.body 例如前台代码://jad...原创 2017-12-27 05:31:46 · 3645 阅读 · 0 评论 -
理解继承(二):构造函数的继承
继续学习中,原作者:阮一峰原文:Javascript面向对象编程(二):构造函数的继承 对象之间继承的五种方法 例如:现在有一个“动物”的构造函数function Animal(){ this.species = "动物";}还有一个“猫”对象的构造函数function Cat(name,color){ this.name = name; this.colo...转载 2017-10-08 11:14:09 · 4387 阅读 · 0 评论 -
理解继承(三):非构造函数的继承方法
真诚推荐阮一峰的博客原文:Javascript面向对象编程(三):非构造函数的继承学无止境,站在大神的肩膀上看世界,感恩 不使用构造函数实现继承:一.何谓“非构造函数”的继承?比如现在有一个对象,名为“中国人”var Chinese = { nation:'中国'};还有一个对象叫做”作者”var author = { career:'作者...转载 2017-10-08 12:41:45 · 342 阅读 · 0 评论 -
JS深拷贝和浅拷贝
JS中对象分为基本类型和复合(引用)类型,基本类型存放在栈内存,复合(引用)类型存放在堆内存中 堆内存中用于存放由new创建的对象,栈内存存放一些基本类型的变量和对象的引用变量对于简单变量,内存小,直接复制不会发生引用:var a = 123;var b = a;a = 123456;console.log(a);//123456console.log(b);//123var...原创 2018-04-23 16:40:38 · 187 阅读 · 0 评论 -
查找两个不同元素最近的父节点
题目描述: 查找两个节点的最近的一个共同父节点,可以包括节点自身 输入描述: oNode1 和 oNode2 在同一文档中,且不会为相同的节点解题思路1: 采用DOM规范中的Node.contains方法,先检查节点oNode1和oNode2的相互包含关系, 若两个之间存在包含关系,则返回包含另一个元素的节点,如果两节点无包含关系,采用将其中一个节点的父元素和另一个节点作为参数,递归...原创 2018-04-02 08:52:20 · 4086 阅读 · 1 评论 -
柯里化
今天在做到一个题目,题目的描述如下: 已知 fn 为一个预定义函数,实现函数 curryIt,调用之后满足如下条件: 1、返回一个函数 a,a 的 length 属性值为 1(即显式声明 a 接收一个参数) 2、调用 a 之后,返回一个函数 b, b 的 length 属性值为 1 3、调用 b 之后,返回一个函数 c, c 的 length 属性值...原创 2018-04-01 16:31:09 · 1067 阅读 · 0 评论 -
this指向问题
调用一个函数会暂停当前函数的执行,传递控制权和参数给新的函数。除了生命是定义的形式参数,每个函数还接收两个附加的参数:this,和arguments。参数this在面向对象编程中很重要,它的值取决于调用的模式。在JavaScript中一共有四种调用模式:方法调用模式,函数调用模式,构造器调用模式和apply调用模式。这些模式在初始化关键参数this上有差异。方法调用模式当一个函数被保存...原创 2018-03-20 09:46:30 · 431 阅读 · 0 评论 -
如何判检测JS中Array类型
在JS中我们使用typeof判断数组时,将会得到object,那我们究竟该如何判断一个值是不是数组类型昵?方法一:instanceof对于一个网页,或者一个全局作用域而言,使用instanceof操作符就能得到满意的结果:if(value instanceof Array){ //some codes}但是instanceof操作符的问题在于,它假定只有一个全局执行...原创 2018-03-19 18:04:05 · 910 阅读 · 0 评论 -
模拟变量作用域解析函数
-7uy6t55假设我们现在要解析一门类似于JavaScript那样用一对花括号指示作用域语言,定义在某个作用域里的条目在该作用域之外是不可见的。但是在某种意义上,一个内部作用域会继承它外部的作用域。 JS在表示这样的关系上做的很好。很遇到一个左花括号时block函数被调用。parse函数将从scope中寻找符号,并且当它定义了新的符号时扩充scope。var block = fu...原创 2018-03-19 15:34:16 · 177 阅读 · 0 评论 -
理解继承(一):JS面向对象编程(封装)
依然是向阮前辈(阮一峰)学习的博客原文 学了这一阶段和峰大神的几篇文章,打算下一阶段滚回去把指针好好学一下 JS 中,万物皆对象,但是它又不是一门真正的面向对象编程语言。 那如果我们要把“属性(prototype)”和方法(“method”)封装成一个对象,甚至要从原型对象生成一个实例对象,我们应该怎么做?一:原始生成实例对象的模式var Cat = { name:'',...转载 2017-10-07 18:36:29 · 556 阅读 · 0 评论 -
JS继承机制思想
发现一个超级棒的博客@作者:阮一峰,给大家推荐,大家可以直接进入他的博客阮一峰博客原文 跟着大神开始学继承,姑娘撸起袖子开始干了,菜鸟一枚完全跟着大神学 JS中没有“子类”和“父类”,也没有“类”(class)和”实例”(instance)的区分,全靠一种奇特的”原型链”,来实现继承一.JS的诞生1994年,网景公司(Netscape)发布了Navigator浏览器0.9版。这是历...转载 2018-04-30 22:46:30 · 216 阅读 · 0 评论 -
JS原型与原型链
跟着大神学继承再来一波 在说JS原型之前来说说对象。一.普通对象与函数对象Javascript中,万物皆对象,但分为普通对象和函数对象,Object,Function是JS自带的函数对象。 下面举例说明:function f1(){};console.log(typeof f1);//输出function 函数对象var f2 = function(){};cons...翻译 2017-10-07 12:59:30 · 374 阅读 · 0 评论 -
闭包
最近把JS的知识点再看一遍,发现新的东西 阮一峰:学习Javascript闭包(Closure)变量的作用域变量的作用域分为两种:全局变量和局部变量 函数内部可以直接读取全局变量var a = 123;function f1(){ console.log(a);}f1();//123函数外部无法自然读取函数内部的局部变量function f1(){ ...转载 2018-05-02 17:14:35 · 292 阅读 · 0 评论 -
引用类型改变值的问题
var arr1 = "Marry".split('');var arr2 = arr1.reverse();var arr3 = "Blues".split('');arr2.push(arr3);console.log(arr1);//[ 'y', 'r', 'r', 'a', 'M', [ 'B', 'l', 'u', 'e', 's' ] ]console.log(arr2);/...原创 2018-05-02 11:53:11 · 940 阅读 · 0 评论 -
让li输入正常的索引值
根据下面的代码回答问题:for(var i = 0;i<5;i++){ var btn = document.createElement("button"); btn.appendChild(document.createTextNode('Button'+i)); btn.addEveListener('click',function(){console.log(i);})...原创 2018-05-02 11:19:17 · 405 阅读 · 0 评论 -
判断回文字符串的方法
回文就是将一个字符串翻转过来,能和原来字符串完全相等,就可以称之为回文。方法一:字符串倒置比较function isPalindrome(line){ line += ""; return line === line.split("").reverse().join("");}这种方法方便,但是效率不高,字符串分割,倒置,聚合都需要很多额外的操作。方法二:从字符串头部和尾...原创 2018-05-02 09:28:46 · 2023 阅读 · 0 评论 -
NaN
NaN是一个全局对象的属性,NaN属性的初始值是一个不可配置的,不可写的属性。在ES3中这个属性值是可以改变的,但是也应该避免覆盖。判断一个值是不是NaN等号运算符(==和===)不能被用来判断一个值是否是NaN。必须使用Number.isNaN或者NaN()函数。在执行自比较之中,NaN也只有NaN不等于其本身console.log(NaN === NaN);//falseco...原创 2018-05-01 22:48:57 · 187 阅读 · 0 评论 -
return语句
先看看下面两个函数的返回值是否一样//函数一function fool1(){ return{ bar:"hello" };}//函数2function foo2(){ return { bar:"hello" };}console.log(foo1());//{bar:"hello"}console.log(foo2());//undef...原创 2018-05-01 22:37:43 · 666 阅读 · 0 评论 -
this指向问题
看题:var myObject = { foo:"xiaohu", func:function(){ var that = this; console.log(this.foo);//xiaohu console.log(that.foo);//xiaohu (function(){ console.log(this == window)...原创 2018-05-01 22:27:37 · 162 阅读 · 0 评论 -
变量赋值问题
(function(){ var a = b = 3;})();console.log(typeof a);//undefinedconsole.log(typeof b);//number解析: 首先理解一句话是在立即执行函数体里面var a = b = 3;对这个进行拆解一下(赋值过程从左到右)b = 3;var a = b;变量b是一个全局变量 变量a在封闭的...原创 2018-05-01 19:42:29 · 302 阅读 · 0 评论 -
typeof
常见使用typeof判断类型的结果:typeof undefined //undefinedtypeof null //objecttypeof NaN //numbertypeof function(){} //functiontypeof [] //object判断object的时候,有可能因为是null,因...原创 2018-05-01 18:57:27 · 262 阅读 · 0 评论 -
JavaScript代码规范
全局命名空间污染与 IIFE总是将代码包裹成一个 IIFE(Immediately-Invoked Function Expression),用以创建独立隔绝的定义域。这一举措可防止全局命名空间被污染。IIFE 还可确保你的代码不会轻易被其它全局命名空间里的代码所修改(i.e. 第三方库,window 引用,被覆盖的未定义的关键字等等)。 IIFE(立即执行的函数表达式)无论...转载 2017-12-12 17:14:39 · 290 阅读 · 0 评论 -
模拟变量作用域解析函数
假设我们现在要解析一门类似于JavaScript那样用一对花括号指示作用域语言,定义在某个作用域里的条目在该作用域之外是不可见的。但是在某种意义上,一个内部作用域会继承它外部的作用域。 JS在表示这样的关系上做的很好。很遇到一个左花括号时block函数被调用。parse函数将从scope中寻找符号,并且当它定义了新的符号时扩充scope。var block = function(){//记...原创 2018-03-19 15:00:00 · 418 阅读 · 0 评论 -
JS 参数
最近开始重读《javaScript高级程序设计》这本书,觉得基础还是很重要,回顾一遍,也推荐给在学习JS的小伙伴理解参数ECMAScript函数的参数,与大多数其他语言的参数不同你可以传递任意个数,任意类型的参数在ECMAScript函数中,也就是说,假入你定义了一个只接收两个参数的函数,但是你在调用这个函数的时候,你可传任意个数的参数,也可以不传参数。究其原因是在于:ECMA...原创 2018-03-03 17:31:13 · 430 阅读 · 0 评论 -
JS图片预加载
一直以来对于性能优化方面的知识没有很关注,心里很难过,我们就是要为用户创造更好的用户体验所以对于代码的优化是我们需要认真考虑的问题。现在的学习的知识还很浅,多向他人学习。这个图片预加载是看到一个很努力的前辈的博客中的一篇,自己学习,也和大家一起分享。总有一种感觉自己写的博客没有给别人说明白的感觉,反思自己是我学的不透彻,而且比较浮躁,以此激励自己,戒骄戒躁,认真对待眼下的事。 附上博客原网址:图片转载 2017-12-07 12:35:43 · 163 阅读 · 0 评论 -
JS:模仿块级作用域及私有变量
模仿块级作用域JavaScript没有块级作用域 例如:function outputNumber(){ for(var i = 0;i<count;i++){ alert(i); } alert(i);}函数中定了一个for循环,在Java,C++等语言中,变量i只在for循环语句中有定义,循环一旦结束,变量就会被销毁。可是在JavaScript中原创 2017-10-19 12:08:17 · 280 阅读 · 0 评论 -
理解闭包(一)
作为一个新手,学习闭包还是有点小激动,感觉语言真的很有魅力,前提是我要学会它 依然参考了阮一峰的博客学习的阮一峰博客原文:学习Javascript闭包(Closure)学习变量的作用域和作用域链对于学习真的有很大的帮助,在学习闭包之前听了大神的建议,把这一块好好的学习了一下,再闭包,真的觉得变得比之前好理解的多(一):变量作用域变量的作用域分为全局变量和局部变量 JS可以在函数内部直接访问全局变转载 2017-10-18 19:03:18 · 163 阅读 · 0 评论 -
JS中变量的存储问题(面试准备)
JS中变量分为两种类型:基本数据类型和引用类型(一)基本数据类型:Undefined,Null,Boolean,Number和String (二)引用类型:对象,数组,函数 原始值和引用值存储在内存中的位置分别是栈和堆。原始值是存储在栈中的简单数据段,他们的值直接存储在变量访问的位置。引用值是存储在堆中的对象。栈:主要表现为一种数据结构,是只能在某一端插入和删除的特殊线性表。它按照后进先出的原则原创 2017-10-01 07:48:11 · 2326 阅读 · 0 评论 -
省市区三级联动
省市区的三级关联菜单<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>省市三级联动</title> <script type="text/javascript"> var arr = [ { "name原创 2017-09-20 12:24:19 · 304 阅读 · 0 评论 -
二级联动下拉单
制作二级联动下拉菜单<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>省市二级联动</title></head><body>//当省按钮内的内容被改变时就触发这个函数,将与之对应的城市添加到第二个选项栏中去//this传入当前被选择的省份所对应的索引值,下面函数用来找到对应的城市数组原创 2017-09-19 14:45:44 · 385 阅读 · 0 评论 -
属性getter和setter
javascript中的setter,getter只在非IE浏览器里支持,在ECMAScript5中属性值可以用一个或者两个方法代替,这两个方法就是setter和getter,由它们定义的属性称作为“存储器属性”getter负责查询值,它不带任何参数,setter负责设置键值,值以参数形式传递。与普通属性不同的地方,存储器属性只声明了get或者set时,对于读和写二者是不可兼得的,当它只拥有gett原创 2017-09-27 09:36:39 · 457 阅读 · 0 评论 -
JS继承的6种方式
JS实现继承的集中方式逛了一圈博客,对JS继承的集中方式进行总结 在实现继承之前,先定义一个父类,并且对属性进行约定function Fun(){//私有属性var val = 1;//私有属性var arr = [1];//私有引用属性function fun(){} //私有函数(引用属性)//实例属性this.val = 1; //实例基本属性this.arr = [1];原创 2017-09-26 15:31:37 · 7380 阅读 · 1 评论 -
new Option()函数的作用
在做三级联动的时候遇见了这个函数,对函数的用法进行一下小总结,不太详细,敬请谅解。作用:用于创建一个新的选项Option()构造函数接受两个参数:文本(text)和值(value);第二个参数可选.虽然这个构造函数会创建一个Object的实例,但是兼容DOM的浏览器会返回一个<option>元素。我们依然可以使用appendChild()将新的选项加到选择框中。例如:var newOption =原创 2017-09-18 10:18:44 · 23715 阅读 · 1 评论 -
JS堆栈和拷贝的理解
1.堆栈的概念栈: 队列优先,先进先出,由操作系统自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈 堆: 先进后出,动态分配的空间一般由程序员分配释放,若程序员不释放,程序结束时可能由OS(Operatig System,管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件)回收,分配方式类似于链表2.基本类型和引用类型基本类型:翻译 2017-09-17 11:22:18 · 1904 阅读 · 0 评论 -
html,css,js代码加载顺序问题
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2017-08-27 14:08:01 · 5174 阅读 · 0 评论 -
JavaScript垃圾收集机制及内存泄漏问题
JavaScript具有自动垃圾收集机制,也就是说执行环境,会负责管理代码执行过程中使用的内存。在C,C++之类的语言中,开发人员的一项基本任务就是手动跟踪内存使用情况。这会造成很多问题,在编写JavaScript代码时,开发人员不用担心内存问题,内存分配以及无用内存的回收完全实现了自动管理。垃圾收集机制原理:找出那些不再继续使用的变量,然后释放其占用的内存。为此,垃圾收集器会按照固定的时间间隔(或原创 2017-10-18 21:58:33 · 448 阅读 · 0 评论 -
高级程序设计读书笔记(一)
一个完整的JavaScript实现应该由下列三个不同的部分组成:核心(ECMAScript) 文档对象模型(DOM)浏览器对象模型(BOM)ECMAScript与Web浏览器之间没有依赖关系。实际上,这么语言本身并不包含输入和输出的定义。ECMScript-262定义的只是这门语言的基础,我们常见的Web浏览器只是ECMScript实现的可能的宿主环境之一。ECMAScript标准没有参照W原创 2017-10-10 22:03:31 · 217 阅读 · 0 评论 -
form表单的属性
Form的属性method属性:规定用于发送 form-data 的 HTTP 方法。实际上就是请求的方式。 name属性:表单的名称。 action属性:指定表单请求的路径 target属性:指定action的Url在哪里打开method属性form表单是的HTML中常用的标签。主要用来提交参数与后台数据进行交互。提交表单的方式有两种(主要通过method属性控制):①GET方式:最常转载 2017-10-30 19:58:36 · 2350 阅读 · 0 评论