JavaScript
MySunshine07
唯有读书与运动不可辜负~
展开
-
使用js实现将有父子关系的数据转换成树形结构数据
1原创 2020-03-27 16:16:09 · 1681 阅读 · 2 评论 -
JS之面向对象
JavaScript的面向对象编程和大多数其他语言如Java、C的面向对象编程都不太一样。面向对象的两个基本概念是类和实例:类:类是对象的类型模板,例如,定义Student类来表示学生,类本身是一种类型,Student表示学生类型,但不表示任何具体的某个学生;实例:实例是根据类创建的对象,例如,根据Student类可以创建出xiaoming、xiaohong、xiaojun等多个实例,每个...原创 2018-11-21 11:29:03 · 169 阅读 · 0 评论 -
js中遍历数组的几种方法汇总
1、forEach var arr= ['张三', '李四', '王五'];arr.forEach(function(v,k) { console.log(v); //这样就会分别将name遍历出来});//注意:jquery中each方法是反的,比如:$(arr).each(function(k,v){ console.log(v); });2...原创 2018-11-22 16:37:49 · 1043 阅读 · 0 评论 -
ES6常用笔记整理
// 转换布尔类型 变量前加 !!!! 'string'// true// 转换数字类型 变量前加 + + '0.7'// 0.7// 常见数组去重 const array = [1, 2, 2, 3]const unique = Array.from(new Set(array))// unique [1, 2, 3]// 简单的mapconst nums = [...原创 2018-11-22 17:30:40 · 293 阅读 · 0 评论 -
JS闭包问题
1、如何理解闭包?为什么要使用闭包: 因为JS中变量的作用域分类为全局变量和局部变量。函数内部可以读取函数外部的全局变量; 在函数外部无法读取函数内的局部变量。为了让函数执行完成后,内部的函数、变量还 能被调用,可以采用闭包延长局部变量/函数的生命周期。 定义和用法: 当一个函数的返回值是另外一个函数,而返回的那个函数如果调用了其父函数内部的其它变量, 如果返回的这个函数在外部被执行, 就产...原创 2018-11-18 19:27:01 · 373 阅读 · 0 评论 -
clone
题目:实现一个函数clone,可以对JavaScript中的5种主要的数据类型(包括Number、String、Object、Array、Boolean)进行值复制。方法一:Object.prototype.clone = function() {var o = this.constructor === Array ? [] : {};for (var e in this) {o[...原创 2018-12-31 19:04:31 · 228 阅读 · 0 评论 -
apply, call和bind的区别
三者都可以把一个函数应用到其他对象上,注意不是自身对象。apply和call是直接执行函数调用,bind是绑定,执行需要再次调用。 apply和call的区别是apply接受数组作为参数,而call是接受逗号分隔的无限多个参数列表。function Person() { }Person.prototype.sayName() { alert(this.name); } ...原创 2018-12-31 19:33:54 · 157 阅读 · 0 评论 -
高阶函数之sort
1、排序算法是在程序中经常用到的算法。无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小。通常规定,对于两个元素x和y,如果认为x < y,则返回-1,如果认为x == y,则返回0,如果认为x > y,则返回1(升序)。这样,排序算法就不用关心具体的比较过程,而是根据比较结果直接排序。如下所示:var arr = [10, 20, 4, 6];arr.sort(fu...原创 2019-03-23 21:20:59 · 391 阅读 · 0 评论 -
计算某一点绕另一点旋转一定角度后的坐标
/** * 计算某一点旋转后的坐标点 * @param point * @param degree */export const calculateRotate = (point, degree) => { let x = point.x * Math.cos(degree * Math.PI / 180) + point.y * Math.sin(degree * Ma...原创 2019-03-31 21:22:31 · 7372 阅读 · 0 评论 -
已知某一点坐标、线段长度和旋转角度,求另一点坐标
/** 已知某一点坐标,旋转角度,长度,求另一点坐标 */export const calculateCoordinatePoint = (originPoint, degree, len) => { let rotate = (degree - 90 + 360) % 360; //这里是因为一开始以y轴下方为0度的 let point = { x:...原创 2019-03-31 21:39:06 · 11132 阅读 · 2 评论 -
时间戳转为年月日时分秒格式
1、小于10前面补0function add0(m){ return m<10?'0'+m:m }2、转为年-月-日 时:分:秒格式function timeFormat(ts){ var time = new Date(ts); var y = time.getFullYear(); var m = time.getMonth()+1; ...原创 2019-04-29 23:22:34 · 2473 阅读 · 0 评论 -
JS之函数详解
1、定义函数也是一个对象;它是可以重复执行的代码块;是可以完成特定功能的一段代码;使用typeof检查一个函数对象时,会返回function。2、作用因为一部分代码使用次数可能会很多,所以封装起来,需要的时候调用就可以了。这样做可以将复杂的事情简单化 ,将重复使用的代码进行统一封装。特点: 封装到函数中的代码不会立即执行;函数中的代码会在函数调用的时候执行 ;调用函数语法:函数对象...原创 2018-11-21 11:29:12 · 444 阅读 · 0 评论 -
JS之数组方法
数组的方法有数组原型方法,也有从object对象继承来的方法,这里只介绍数组的原型方法,数组原型方法主要有以下这些:join()push()和pop()shift() 和 unshift()sort()reverse()concat()slice()splice()indexOf()和 lastIndexOf() (ES5新增)forEach() (ES5新增)map() ...原创 2018-11-18 22:54:49 · 154 阅读 · 0 评论 -
JS中的递归函数调用实例
1、什么是递归函数:递归函数是在一个函数通过名字调用自身情况下构成的;递归函数就函数内部调用函数本身。2、利用递归求100的阶乘。function factorial(n){ if(n==1){ return 1; } else{ return n*factorial(--n); } ...原创 2018-07-13 14:27:38 · 3633 阅读 · 0 评论 -
前端开发学习路径之阶段三:JavaScript基础篇
一、JavaScript简介 1、JavaScript是脚本语言。 2、JavaScript 是一种轻量级的编程语言。 3、JavaScript 是可插入 HTML 页面的编程代码。二、JavaScript变量 与代数一样,JavaScript 变量可用于存放值(比如 x=5)和表达式(比如 z=x+y)。变量可以使用短名称(比如...原创 2018-08-01 17:38:23 · 539 阅读 · 0 评论 -
js数组去重的方法
方法一:利用splice直接在原数组进行操作,双层循环,外层循环元素,内层循环时比较值。值相同时,则删去这个值。Array.prototype.distinct = function (){ var arr = this; var len = arr.length; for(var i = 0; i < len; i++){ for(var j = i + 1; j <...原创 2018-10-10 22:48:48 · 1080 阅读 · 0 评论 -
运算符操作
一、运算符1、基本定义 运算符也叫操作符, 通过运算符可以对一个或多个值进行运算,并获取运算结果, 比如:typeof就是运算符,可以来获得一个值的类型, 它会将该值的类型以字符串的形式返回: number string boolean undefined object2、作用 运算符是告诉程序执行特定算术或逻辑操作的符号, 例如告诉程序, 某两个数相加, ...原创 2018-10-22 22:16:06 · 1002 阅读 · 0 评论 -
流程控制语句
一、简介程序是由一条一条语句构成的;语句是按照自上向下的顺序一条一条执行的; 在JS中可以使用{}来为语句进行分组;同一个{}中的语句我们称为是一组语句;它们要么都执行,要么都不执行。二、 流程控制语句默认情况下,程序的运行流程是这样的:运行程序后,系统会按书写从上至下顺序执行程序中的每一行代码,但是这并不能满足我们所有的开发需求。如下图:实际开发中,我们需要根据不同的条件执行...原创 2018-10-28 17:12:49 · 292 阅读 · 0 评论 -
JS的几种数据类型
在JavaScript中,一共有六种数据类型,如下图所示:一、数字类型(Number)1、最基本的数据类型;2、不区分整型数值和浮点型数值;3、能表示的最大值是±1.7976931348623157乘以10的308次方;能表示的最小值是±5 乘以10的-324次方;4、包含十六进制数据,以 0x开头 0到9之间的数字,a(A)-f(F)之间字母构成。 a-f对应的数字是10-15...原创 2018-10-21 22:11:22 · 657 阅读 · 0 评论 -
js的数据类型转换
1、toString():将其它类型的数据转换为字符串类型。 var num = 12306; var str= num .toString(); console.log(str); // 12306 console.log(typeof str); // string var num1 = true; var str1 = num1.toString()...原创 2018-10-21 22:32:12 · 211 阅读 · 0 评论 -
JS的作用域问题
一、块级作用域在 JavaScript 中, 作用域为可访问变量,对象,函数的集合。js没有块级作用域(你可以自己闭包或其他方法实现),只有函数级作用域,函数外面的变量函数里面可以找到,函数里面的变量外面找不到。var a=10; function aaa(){ alert(a);}; function bbb(){var a=20;aaa();...原创 2018-11-07 22:58:59 · 288 阅读 · 0 评论 -
JavaScript 的垃圾收集
垃圾回收机制就是间歇的不定期的寻找到不再使用的变量, 并释放掉它们所指向的内存; 主要为了以防内存泄漏, (内存泄漏: 当已经不需要某块内存时这块内存还存在着)。JS有两种变量: 全局变量和在函数中产生的局部变量。局部变量的生命周期在函数执行过后就结束了, 此时便可将它引用的内存释放(即垃圾回收); 但全局变量生命周期会持续到浏览器关闭页面。JS执行环境中的垃圾回收器有两种方式: 标记...原创 2018-11-08 22:47:03 · 317 阅读 · 0 评论 -
JS之数组详解
1、什么是数组?数组就是一组数据的集合; 其表现形式就是内存中的一段连续的内存地址; 数组名称其实就是连续内存地址的首地址。2、数组特点?数组定义时无需指定数据类型; 数组定义时可以无需指定数组长度; 数组可以存储任何数据类型的数据(比如说一个元素保存整型,一个元素保存字符串型,这个在JS中是可以的)。创建数组的语法:var arr=[值1,值2,值3]; ...原创 2018-11-18 22:08:03 · 214 阅读 · 0 评论 -
JavaScript中=、==、===运算符之间的区别
JavaScript中,“=”表示赋值运算符,是将等式右边的结果赋值给左边。 "=="运算符称为相等运算符,用来检测两个操作数是否相等,这里“相等”的定义非常宽松,可以允许进行类型转换。如果两个操作数不是同一类型,那么相等运算符会尝试对操作数进行一些类型转换,然后进行比较。其中,若一个为null,另一个为undefined,则相等;若一个为数字一个为字符串,将字符串转换为数字进行比较。 ...原创 2018-07-10 21:12:25 · 1143 阅读 · 0 评论