- 博客(33)
- 收藏
- 关注
原创 005-执行环境及作用域
执行环境定义了变量或函数有权访问的其他数据,决定了他们各自的行为。每个执行环境都有一个与之关联的变量对象,环境中定义的所有变量和函数都保存在这个对象中。执行环境可以划分为两类:全局执行环境全局执行环境是最外围的一个执行环境。根据ECMAScript实现所在的宿主环境不同,表示执行环境的变量对象也不一样。例如,在WEB浏览器中,与全局执行环境关联的变量对象是windows对象。函数执行环境每个函数都有自己的执行环境,函数执行环境的变量对象被称为活动对象,它在最开始只包含一个变量,即argument
2021-05-17 08:38:14
174
原创 0012-基本类型和引用类型的值
ESCMAScript变量包含两种不同数据类型的值:基本数据类型和引用数据类型。基本数据类型指的是简单的数据段,而引用类型的值指那些可能由多个值构成的对象。将一个值赋值个变量时,解析器必须确定这个值是基本数据类型还是引用数据类型,基本数据类型是按值访问的,因为可以操作保存在变量中的实际的值。引用数据类型的值是保存在内存中的对象,与其他语言不同,Javascript不允许直接访问内存中的位置,也就是说不能直接操作对象的内存空间。在操作对象时,实际是在操作对象的引用而不是实际的对象。为此,引用类型的值是按引
2021-05-13 08:32:06
142
原创 004-函数
函数对于任何语言来说都是一个核心的概念,通过函数可以封装任意多条语句,而且可以在任何地方、任何时候调用执行。ECMAScript中的函数使用function关键字来声明,后跟一组参数以及函数体。以下是一个函数实例:// function functionName(args0,args1,...argsN){// statusments// }function sayHi(name, msg) { console.log('Hello' + name + msg)}sayHi('
2021-05-12 07:59:24
150
原创 003-语句
if语句// if(condition) statement1 else statement2if(i<25){ alert(1)}else{ alert(2)}do-while语句do-while语句是一种后测试循环语句,即只有在循环体中的代码执行之后,才会测试出口条件// do{// statement// } while (expression)var i = 0;do { i += 2} while (i < 10)console..
2021-05-11 08:29:46
106
原创 002-操作符
一元操作符只能操作一个值的操作符叫做一元操作符(1)递增和递减操作符,前置型和后置型let a = 10;let b = 2;let c = --a + b//11let a = 10;let b = 2;let c = a-- + b//12(2)一元加和减操作符一元加以一个(+)表示,放在数值前面,对数值不会产生任何影响;一元减主要表示负数+20//20-20//-20(3)布尔操作符逻辑非(!)可以应用于ECMAScript中的任意值,无论这个值是什么类型,都会.
2021-04-15 22:40:33
116
原创 001-js数据类型
Undefined类型Undefined类型只有一个值,计特殊的undefined。在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined,例如var msg;console.log(msg===undefined)//trueNull类型Null类型是第二个只有一个值的数据类型,这个特殊的值是null,null值表示一个空对象指针,而这也正是使用typeof操作符检测null值时会返回"object"的原因var car=nullconsole.log(car).
2021-04-13 21:11:02
131
原创 0011-判断数据类型
在JavaScript里使用typeof判断数据类型,只能区分基本类型,即:number、string、undefined、boolean、object。// Numberstypeof 37 === 'number';typeof 3.14 === 'number';typeof(42) === 'number';typeof Math.LN2 === 'number';typeof Infinity === 'number';typeof NaN === 'number'; // Desp
2021-03-16 23:55:52
121
原创 高阶函数
高阶函数:英文叫Higher-order function。JavaScript的函数其实都指向某个变量。既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。function say(a){ console.log('say',a)}Function.prototype.before=function(callback){ return (...args)=>{ callback() th
2021-03-16 00:33:11
146
原创 react hooks参数传递useContext、createContext
Father.jsimport React, { useState, createContext } from "react";import Child from "./Child";export const CountContext = createContext();export function Father() { const [count, setCount] = useState(0); return ( <div> &
2020-11-22 22:05:18
1171
原创 react面试总结
1.状态(state)和属性(props)之间有何不同State 是一种数据结构,用于组件挂载时所需数据的默认值。State 可能会随着时间的推移而发生突变,但多数时候是作为用户事件行为的结果。Props(properties 的简写)则是组件的配置。props 由父组件传递给子组件,并且就子组件而言,props 是不可变的(immutable)。组件不能改变自身的 props,但是可以把其子组件的 props 放在一起(统一管理)。Props 也不仅仅是数据–回调函数也可以通过 props 传递2.
2020-10-28 21:07:17
331
原创 web前端面试题
网页从输入网址到渲染完成经历了哪些过程?输入网址;发送到DNS服务器,并获取域名对应的web服务器对应的ip地址;与web服务器建立TCP连接;浏览器向web服务器发送http请求;web服务器响应请求,并返回指定url的数据(或错误信息,或重定向的新的url地址);浏览器下载web服务器返回的数据及解析html源文件;生成DOM树,解析css和js,渲染页面,直至显示完成;闭包闭包特性:①函数嵌套函数②函数内部可以引用函数外部的参数和变量③参数和变量不会被垃圾回收机制回收..
2020-10-27 10:56:37
264
原创 007“Array” 方法_dropRight
_.dropRight(array, [n=1])创建一个切片数组,去除array尾部的n个元素。(n默认值为1。)参数array (Array): 要查询的数组。[n=1] (number): 要去除的元素个数。返回值(Array): 返回array剩余切片。例子let arr=[1,2,3,4,5]console.log(_.dropRight(arr,3))//[1, 2]console.log(_.dropRight(arr,6))//[]console.log(_.dr
2020-10-19 11:13:58
138
原创 006“Array” 方法_drop
_.drop(array, [n=1])创建一个切片数组,去除array前面的n个元素。(n默认值为1。)参数array (Array): 要查询的数组。[n=1] (number): 要去除的元素个数。返回值(Array): 返回array剩余切片。例子let arr=[1,2,3,4,5]console.log(_.drop(arr,3))//[4, 5]我的实现drop(arr,num){ return arr.slice(num,arr.length)}co
2020-10-17 11:33:20
160
原创 002“Array” 方法_compact
_.compact(array)创建一个新数组,包含原数组中所有的非假值元素。例如false, null, 0, "", undefined, 和 NaN 都是被认为是“假值”。参数array (Array): 待处理的数组返回值(Array): 返回过滤掉假值的新数组。例子let arr1=["a", "b", "c", "d",false, null, 0, "", undefined, NaN]console.log(_.compact(arr1))//["a", "b", "c
2020-10-16 11:24:53
260
原创 001“Array” 方法_chunk
_.chunk(array, [size=1])将数组(array)拆分成多个 size 长度的区块,并将这些区块组成一个新数组。 如果array 无法被分割成全部等长的区块,那么最后剩余的元素将组成一个区块。参数array (Array): 需要处理的数组[size=1] (number): 每个数组区块的长度返回(Array): 返回一个包含拆分区块的新数组(注:相当于一个二维数组)。例子console.log(_.chunk(['a', 'b', 'c', 'd'], 2))//
2020-10-15 16:01:18
387
原创 react中播放多个rtmp流视频
1,安装依赖yarn add video.jsyarn add videojs-flash //新版本的video.js需要单独安装videojs-flash2,封装Video.jsimport React from "react";import "video.js/dist/video-js.css";import "videojs-flash";import videojs from "video.js";class Video extends React.Component {
2020-10-12 11:47:29
2645
5
原创 微信小程序图片上传,多图上传可限制张数
wxml<view class="up_items"> <view class="up_item" wx:for="{{images}}" wx:key="*this"> <image class="up_image" src="{{item}}"></image> </view> <view class="up_btn" bindtap="upLoad" wx:if="{{images.length<10}}">
2020-07-31 21:37:02
2755
原创 001标识符与关键字
标识符的命名规则标识符可以由字母、数字、下划线_和美元符$组成,不能以数字开头标识符严格区分大小写标识符不能是java关键字或保留字标识符的命名最好能反应出作用关键字
2020-07-13 22:59:11
225
原创 003常量与变量
常量:在程序运行期间,固定不变的量常量的分类字符串常量:凡是用双引号引起来的部分,叫做字符串常量,例如:“abc”、“hello”、“124”整数常量:直接写上的数字没有小数点,例如:10、35浮点数常量:直接写上的数字,有小数点,例如:2.5、-3.5字符常量:用单引号引起来的单个字符,例如:‘A’、‘3’、‘夏’布尔常量:只有两种取值:true、false空常量:null,代表没有任何数据package com.min;public class Main { public
2020-07-09 23:11:47
167
原创 002基本数据类型
基本数据类型整数型 byte short int long浮点型 float double字符型 char布尔型 boolean注意事项:字符串不是基本数据类型,而是引用类型浮点型可能只是一个近似值,并非精确的值数据范围与字节数不一定相关,列入float数据范围比long更加广泛,但是float是4字符,long是8字节浮点数当中默认类型是double,如果一定要使用float,需要加上一个后缀F;如果是整数,默认为int类型,如果一定要使用long类型,需要加上一个后缀L,推荐使用大写
2020-07-09 22:02:45
161
原创 js通过两点经纬度计算两点距离
function getDistance(lat1, lng1, lat2, lng2){ var radLat1 = lat1 * Math.PI / 180.0 var radLat2 = lat2 * Math.PI / 180.0 var a = radLat1 - radLat2 var b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0 var s = 2 * Math.asin(Math.sqrt(Math.pow(Mat
2020-07-08 09:37:27
451
原创 webview部分手机(华为)弹框内容需要滚动时不能触发内容滑动
弹窗内容需要滚动时,body的scrollTop为0的时候,部分手机上拉会直接触发body滑动,而不是弹窗内容滑动.打开弹窗的时候,需要把body-scrollTop设置大于1即可,设置滚动距离需要注意兼容setScrollTop(){ //test11 let top = document.documentElement.scrollTop || document.body.scrollTop; if(top < 1){ document.documentElement.
2020-06-11 17:19:00
774
原创 防抖和节流的性能优化
防抖:指触发事件后n秒内函数只执行一次,如果n秒内又触发了事件,则会重新计算函数执行时间<body> <div class="box"></div> <script> var box = document.querySelector(".box") var testDebounce=debounce(move,1000) box.onmousemove = testDebounce
2020-06-08 17:33:19
302
原创 js中变化莫测的this指向
事件调用环境谁触发事件,函数里面的this指向的就是谁<style> .box1,.box2{ width: 100px; height: 100px; background: red; position: relative; left: 0; transition: 1s; }</style><body> <div class="box1
2020-06-08 15:20:09
172
原创 微信小程序参数传递获取当前页面的url和参数
页面跳转添加参数wx.navigateTo({ url: `../deeddetail/deeddetail?id=${e.currentTarget.dataset.id}`,})接收options1,在onLoad里接收参数比较简单 onLoad: function (options) { console.log(options.id) //options.参数名就可以取到 },2,其他位置获取参数及url可以写成工具函数放到utils中:/*获取当前页url*/co
2020-06-04 10:12:50
2547
原创 微信小程序request封装(get,post,put,remove)
http.jsconst app = getApp()const request = (url, options) => { return new Promise((resolve, reject) => { wx.request({ url: `${app.globalData.serviceUrl}${url}`, method: options.method, data: options.method
2020-06-02 19:33:56
3665
原创 js数组查找方法总结
1,indexOf()let arr = [1, 2, 3, 4, 5, 6];arr.indexOf(7) //-1arr.indexOf(6) //5要检索的字符串值出现返回下标,没有出现返回 -12,includes()let arr = [1, 2, 3, 4, 5, 6];arr.includes(7) //falsearr.includes(6) //true是否包含一个指定的值,如果是返回 true,否则false3,filter()let arr = [1,
2020-05-13 17:39:59
2838
原创 es6数组新增方法总结
Array.from()方法就是将一个类数组对象或者可遍历对象转换成一个真正的数组。Array.from(arrayLike[, mapFunction[, thisArg]])arrayLike:必传参数,想要转换成数组的伪数组对象或可迭代对象。mapFunction:可选参数,mapFunction(item,index){…} 是在集合中的每个项目上调用的函数。返回的值将插入到新集合中。thisArg:可选参数,执行回调函数 mapFunction 时 this 对象。这个参数很少使用1,类
2020-05-09 16:42:23
271
原创 git安装及常见命令
1,windows下安装1)下载程序安装2) $ git config --global user.name "Your Name" $ git config --global user.email "email@example.com"3)如何生成ssh公钥(1)你可以按如下命令来生成 sshkey: ssh-keygen -t rsa -C "xxxxx@xxxxx.com" 三次...
2020-05-07 11:41:03
324
1
原创 js数组的常用方法总结
1,创建数组var arr=[] //字面量定义var arr=new Array() //调用数组构造函数生成//用new 关键字去内存开辟一个存储地址比较耗资源,耗内存;而字面量方式直接在内存开辟一个存储字段相对简单,不耗资源.2,数组元素的读写var arr = [1,2,3] console.log(arr[0]) //1arr[1]=6console.log(arr...
2020-05-06 15:36:33
192
原创 es5、es6数组遍历方法
ES5:1、forlet items=[1,2,3,4,5]for(let i=0;i<items.length;i++){ console.log(items[i]) //1 2 3 4 5}2、forEachitems.forEach(function(item){ //不支持break、continue console.log(item) //1...
2020-04-27 13:57:12
321
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人