JS
文章平均质量分 89
hqy那就再努力一点,再坚持一下
这个作者很懒,什么都没留下…
展开
-
js笔试题
在函数内部,一般用var声明的为局部变量,只要一定义会提升到函数的开头处,没用var声明的一般为全局变量。1var a = 100; 2function test(){ 3 console.log(a); 4 a = 10; 5 console.log(a);6}7test();8console.log(a);解释:在test函数内,a=10声明了一个全局变量,所以第3行的a应该输出全局变量的值,而在函数执行之前已经声明过一个全局变量并赋值100,所以这里第上输出100.原创 2021-03-09 10:33:39 · 451 阅读 · 1 评论 -
pdf文件直接嵌入HTML文档(开源)
一个开源,标准友好的JavaScript实用程序,用于将PDF文件嵌入HTML文档。pdfObject官网:https://pdfobject.com/引入的js文件,可在这里下载压缩包:https://github.com/pipwerks/PDFObject/原创 2020-10-22 20:15:58 · 350 阅读 · 0 评论 -
为什么for循环 删除数组指定元素时出现问题
结果是 1,2,3。并没有把2全部删除,这是因为使用splice会导致没删除一个元素,就会导致索引重新排列。打乱原有的顺序。开始i= 0不等于值2继续,i=1值为2,删除掉。此时索引变化了,原来index为2的现在变index为1,但是index为1已经遍历了,到index2,所以arr[2]这个值就被跳过了。我测试了一下,无论是for(var i = 0;i < arr.length;...原创 2020-03-26 15:05:13 · 355 阅读 · 0 评论 -
对象的复制
一种方法,创建对象,属性一次赋值var a = { name:'missHuang', age:22};var b = new Object();b.name = a.name;b.age = a.age;console.log(b)另外一种assign拷贝/** * assign 拷贝(普通属性),引用属性的拷贝会受到别人的修改影响 * deep 拷...原创 2020-02-17 22:52:36 · 68 阅读 · 0 评论 -
对象继承
function Person (name){ this.name = name; //变量赋值 this.totalName = '人类' //常量赋值}function Teacher(name,course){ Person.call(this,name); //可以继承父类的变量赋值(2) this.course = course;...原创 2020-02-17 21:48:57 · 95 阅读 · 0 评论 -
constructor和prototype
实例的构造函数属性(constructor)指向构造函数。person1.constructor == PersonJS 在创建对象(普通对象、函数对象)的时候,该对象都有proto 的内置属性,用于指向创建它的构造函数的原型对象对象 person1 有一个 proto属性,创建它的构造函数是 Person,构造函数的原型对象是 Person.prototypeperson1.proto ...原创 2020-01-29 20:37:10 · 111 阅读 · 0 评论 -
预编译
语法分析预编译解释执行未经申明的变量就赋值,就认为是全局变量,属于window申明的在函数外部的全局变量,都为全局,都属于window属性a = 12;console.log(a); //12window.a = 30;console.log(a); //30申明函数 提升整体,前后都可访问预编译发生在函数...原创 2019-10-04 21:44:57 · 185 阅读 · 0 评论 -
js里的this
解析器在调用函数时会向函数传递一个隐含的参数thisthis指向一个对象,(函数执行的上下文对象)谁调用此函数,this就指向谁 var obj = { name:"黄", age:21, sayname:fun, }; // for (let n in obj ) { ...原创 2019-10-05 17:44:37 · 77 阅读 · 0 评论 -
工厂模式
function createObj(name,age){ var obj = new Object(); obj.age = age; obj.name = name; obj.sayname = function(){ console.log(this.name);...原创 2019-10-05 18:41:40 · 99 阅读 · 0 评论 -
js的构造函数
function Person (name,age){ this.name = name; this.age = age; this.say = function(){ console.log("这是一个人"); }; } function Animal...原创 2019-10-05 22:52:59 · 57 阅读 · 0 评论 -
使用in和hasOwnProperty()判断对象是否含有属性的差别
function Person (){ } Person.prototype.name = "原型的名字"; var p1 = new Person(); //使用in判断对象中是否由属性时,若自身没有,在原型中找到也是返回true console.log("name" in p1); //使用...原创 2019-10-05 23:23:53 · 318 阅读 · 0 评论 -
call和apply
call和apply都是通过函数对象调用,第一个参数传对象,之后传实参call可以直接在对象后传参数,apply则需要传数组不指定对象的函数调用call和apply时,此时this指向window指定对象的函数调用call和apply时,this指此对象 var obj = { }; function sayName(a,b){ ...原创 2019-10-07 15:55:49 · 79 阅读 · 0 评论 -
js字符串的substring()
substring第一个参数:开始索引位置第二个参数:结束索引位置和slice的差别在于,substring的第二个参数不能为负数,并且当第二个参数小于第一个参数时,会自动调整顺序...原创 2019-10-08 00:21:07 · 89 阅读 · 0 评论 -
js的正则表达式
正则表达式\w-------------单词字符\d--------------数字字符\b--------------单词边界、原创 2019-10-08 17:23:55 · 91 阅读 · 0 评论 -
js的函数作用域(全局和局部变量)
1、函数作用域自身的变量若未定义,则:先从函数自身作用域中找的变量和方法,找不到再从外部的作用域中找。2、若函数作用域自身的变量已在函数内部中被定义了,则:函数内部局部的变量的赋值并不影响外部全局的变量。注意看一下几个例子以下几个例子有差别 var a = 123; /**解释如下 * fun的作用域中var a = 456处申明了a, ...原创 2019-10-08 14:49:49 · 256 阅读 · 0 评论 -
es6新增的语法
let 的特征(区别于var)1、不存在变量申明提升 function fun(){ console.log(b); let b= 200; //不会提前申明 } fun(); //报错2、同一作用域下不能重复申明 let b = 1...原创 2019-10-09 13:54:26 · 105 阅读 · 0 评论 -
Es6引入类
Es6引入类,这和java的类基本是一样的。用法也差不多。直接看代码如下:class SuperBase { constructor(id,name,age){ this.id = id; this.name = name; this.age = age; } showIn...原创 2019-09-08 21:37:14 · 526 阅读 · 0 评论 -
原型和构造函数的组合继承
采用一下的call的这种方式,会使得引用数据类型不受多个new 的相互影响。 function Person(name){ this.name = name; //引用的数据类型 this.Colors = ["red","yellow"]; } ...原创 2019-09-08 20:27:12 · 77 阅读 · 0 评论 -
继承,实例化指针指向原型
【直接代码解释】记住==实例化指针仅指向原型 function Super(){ this.name = "huang"; this.sayName = function(){ console.log(this.name); } } function Sub(){ ...原创 2019-09-07 00:25:16 · 96 阅读 · 1 评论 -
parseInt与Number的区别
parseInt与Number的区别Number()可以将各种类型转换为数值如:Number("123") //123Number("") //0 (注意与parseInt的差别)Number(true) //1Number(22.5) //22.5 (注意与parseInt的差别)parseInt() 是找到第一个数字继续找连续的数字,输出即可。而且会自动...原创 2019-09-01 16:30:58 · 273 阅读 · 0 评论 -
toString()和String()
toString()和String()toString()作用一可以转换为字符串作用二可以将数值转换为不同的进制数的字符串(八进制十进制等)var num = 10;num.toString() //转换为字符串“10”num.toString(2) //转换为2进制的字符串“1010”num.toString(16) //转换为“a”String()直接转换为字符串va...原创 2019-09-01 17:44:12 · 4578 阅读 · 1 评论 -
js函数会不会重载
ECMAScript不会实现函数重载,而会出现覆盖例如: function addSomeNumber(num){ return num+100; } function addSomeNumber(num){ return num+200; } var result = addSo...原创 2019-09-01 21:22:20 · 82 阅读 · 0 评论 -
复制(基本类型和引用类型)
基本类型和引用类型的复制有差别一、基本类型复制可以理解为把原模板a复制在另外一个文件夹存为b中,改变b的内容不影响a的内容。举例如下: var num1 = 12; var num2 = num1; num2 = 13; console.log(num1); //输出为12,不受num2的影响二、引用类型复制可以理解为两个都指向同一个地址,一...原创 2019-09-01 23:03:54 · 266 阅读 · 0 评论 -
检测类型
检测类型有两种一种检测属于是什么基本类型 typeof()检测的是属于什么基础类型 var a ="sc"; typeof(a)==String var b = true; typeof(b)==Boolean var c = 22; typeof(c)==int var d; typeof(d)==u...原创 2019-09-01 23:20:11 · 327 阅读 · 0 评论 -
使用对象字面量
使用对象字面量封装多个可选参数简单介绍下创建一个对象objvar obj = new Object() //实例化对象vat obj = {} //对象字面量两个是一样的,都是创建一个新的对象obj对象字面量举例: function displayInfo(args){ var out = ""; if(typeof args.name=...原创 2019-09-02 01:15:25 · 155 阅读 · 0 评论 -
访问属性
访问属性原创 2019-09-02 01:26:08 · 119 阅读 · 0 评论 -
初始化数组
初始化数组有两种方式一种是构造方法,一种是数组字面量表示法 var a = new Array(); //用构造函数 var b = new Array(3); //给定长度的数组 var c = []; //数组字面量表示(空) var d = [1,2,3] //数组字面量表示(初始化数组)...原创 2019-09-02 14:19:54 · 148 阅读 · 0 评论 -
js数组用栈和队列操作(swift,pop,push)
数组用栈和队列表示模拟栈(水井),后进先出,从最后一个位置进入数组,最后一个位置移出数组栈用pop()把数组最后一个位置数移出push()从最后一个位置移进一个数到数组模拟队列(排队打饭),先进先出,从最后一个位置进入数组,第一个位置移出数组队列用push()从数组的最后一个位置移进一个数用shift()将第一个位置的数移出举例如下: var color = ["red","...原创 2019-09-02 19:27:40 · 170 阅读 · 0 评论 -
数组里的splice() slice()
数组里的splicesplice()可以用来删除,插入,替换数组中的值。1、假设为数组num[ ]num.splice(i,n)表示删除从num[i]开始(包括这个数)的之后n个数num.splice(i,n,数值1,数值2,数值3)表示删除num[i](包括这个数)的n个数,然后在第i个开始依次插入数值1,数值2,数值3举例如此: var num = ["one","five"...原创 2019-09-02 22:00:19 · 159 阅读 · 0 评论 -
js数组里的排序sort
js数组里的排序注意直接用sort()不是按照数字排序的,而是按照字符串的形式比较大小如下面: var values = [1,2,5,10,15]; values.sort(); // 按字符串排序,1,10,15,2,5不是我们想要的数字排序 alert(values); 所以得一般情况得先比较,写个比较函数,后再用sort() f...原创 2019-09-02 22:11:30 · 123 阅读 · 0 评论 -
js里的迭代方法every(),filter(),map(),some()
js里的迭代方法every(),filter(),map(),some()这几个函数都有共同点,在传进入的函数的参数中,有item、index、array。 var num = [1,2,5,10,15]; //判断数组里的每个数是否都满足条件 var everyResult = num.every(function(item,index,array...原创 2019-09-02 23:11:48 · 101 阅读 · 0 评论 -
js里的reduce()
js里的reduce()依次迭代的作用例如实现加法,第一个数+第二个数的和,再加上第三个,依次类推函数传入的参数为prev(前一个值),cur(当前值), index(索引), array(对象) var num = [1,2,4,5,3]; var sum = num.reduce(function(prev,cur,index,array){ r...原创 2019-09-02 23:33:19 · 86 阅读 · 0 评论 -
js里的callSomeFunction()
js里的callSomeFunction()平时的函数为function(参数){方法体;}这时需要定义一个变量var result = function(){};来接收这个函数所返回的值。而callSomeFunction()本身即是函数名,又是一个接收的函数值用法是callSomeFunction(某个函数名,传入这个函数的实参值)。没有方法体。直接用变量等于callSomeFu...原创 2019-09-03 01:23:57 · 713 阅读 · 0 评论 -
js的字符串有哪些基本方法
var str = " hi,kang "; console.log(str.trim()); console.log(str); console.log(str.toUpperCase()); console.log(str.toLowerCase()); console.log(str...原创 2019-09-04 16:00:47 · 525 阅读 · 0 评论 -
js的原型模式
首先我们先来看下面的代码// An highlighted block function Person(name,age){ this.name = name; this.age = age; this.sayName = function sayName(){ console.log(this.n...原创 2019-09-04 18:46:29 · 132 阅读 · 1 评论 -
js的基础注意事项
数据类型undefined booleanstring numbernullobject记住一下几个 1、 alert(undefined==null) 为true 2、 isNaN(数值)对数值里面的数看是否可以转换为数字,若可以则NaN(数值)为true,否则为false. 举例如下: isNaN('10') 为true 因为字符串的10可转换为数字...原创 2019-09-01 16:06:09 · 53 阅读 · 0 评论