变量

前端面试之javascript篇

你。 提交于 2020-02-28 19:43:18
深拷贝和浅拷贝 浅拷贝是拷贝了对象的引用,当原对象发生变化的时候,拷贝对象也跟着变化;深拷贝是另外申请了一块内存,内容和原对象一样,更改原对象,拷贝对象不会发生变化; 深层次理解:浅拷贝是拷贝一层,深层次的对象级别的就拷贝引用;深拷贝是拷贝多层,每一级别的数据都会拷贝出来 深拷贝实现方法: 递归和序列化反序列化 浅拷贝: object.assign() 扩展运算符 遍历 webpack 侧重打包,性能优化,压缩从四,js 数组排序:原生sort,冒泡排序(比较相邻的两个数),快速排序(递归,左右快速的排序), 还有插入排序,选择排序 数据结构 栈(先进后出)队列(先进先出)链表,set集合 js拖拽功能的实现 js节流和防抖 防抖是输入框,滚动,太频繁容易使页面卡顿,掉帧。然后采用合并请求,n秒内执行一次。 节流是n秒内至少执行一次。 手动实现promise Commonjs,Amd,cmd模块化 commonjs是用在服务器端的,同步的,如nodejs amd, cmd是用在浏览器端的,异步的,如requirejs和seajs 其中,amd先提出,cmd是根据commonjs和amd基础上提出的 Once函数 Promise封装ajax Js监听对象属性的改变 自己实现一个bind函数,apply函数 数组去重(最起码说三种) 1.indexof 遍历

Shell变量的用法

南笙酒味 提交于 2020-02-28 19:08:32
变量替换 ${变量名#匹配规则} 从变量开头进行规则匹配,将符合最短的数据删除 例子 variable_1="I love you ,do you love me " 查看一下 var1= ${variable_1#*ove} 查看一下 ${变量名##匹配规则} 从变量开头进行匹配,将符合最长的数据删除 variable_1="I love you ,do you love me " 查看一下 var1=${variable_1##*ove} 查看结果 ${变量名%匹配规则} 从变量尾部进行规则匹配,将符合最短的数据删除 variable_1="I love you ,do you love me " 查看一下 var1=${variable_1%ov*} ${变量名%%匹配规则} 从变量尾部进行规则匹配,将符合最长的数据删除 variable_1="I love you ,do you love me " 查看一下 var1=${variable_1%%ov*} 查看一下 ${变量名/旧字符串/新字符串} 变量内容符合旧字符串则,则第一个旧字符串会被新的字符串取代 ${变量名//旧字符串/新字符串} 变量内容符合旧字符串则,则全部的旧字符串会被新字符串取代 变量测试 变量配置方式 str没有配置 Str没有配置 Str已配置且非空 var=${str-expr} var

Keil 中的Code,RO-data,RW-data,ZI-data

有些话、适合烂在心里 提交于 2020-02-28 18:43:21
Keil 中的Code,RO-data,RW-data,ZI-data 我们开发项目中,编译、链接完成后,都要看一下RAM和Flash的利用情况,尤其在有bootloader的情况下,确保自己的单片机选型能符合项目的要求。其中ARM程序的组成,是很容易混淆的。 此处所说的“ARM程序” 是指在ARM系统中正在执行的程序,而非保存在Flash中的bin映像(image)文件 ,这一点清注意区别。 一、Code,RO-data,RW-data,ZI-data所代表的意思 下图是车检器项目的APP利用情况: 图1 Code = 10956 Code 表示 程序代码部分,即指令 RO-data = 2196 Read Only 表示 程序定义的常量,如const关键字定义的常量数组或者长量(一般作为掉电后的标记),函数中的常量 RW-data = 76 Read Write 表示 已初始化的变量(全局和局部变量) ZI-data = 9908 Zero Initialize 表示 未初始化的变量(全局和局部变量) 二、查找..\Lists文件夹中Project.map文件,查看使用的 MCU 资源: 图2 1、Flash占用 图3 由上图2和图3可知,Size:0x33ac.....13228,因此flash占用如下: Code, RO-data, RW-data ...........

Windows配置JDK环境

守給你的承諾、 提交于 2020-02-28 16:55:18
在系统变量里新建JAVA_HOME变量,变量值为:D:\Program Files\Java\jdk1.8.0_161(根据自己的安装路径填写) 在系统变量里新建classpath变量,变量值为:;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar 在path变量添加变量值:;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin 在CMD里输入javac命令,如果能正常打印用法说明配置成功! 查看java版本命令:java -version 来源: https://www.cnblogs.com/andy020/p/12377860.html

javaScript中变量的作用域

大兔子大兔子 提交于 2020-02-28 15:24:47
https://www.cnblogs.com/m-chaoyue/p/6768254.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>javaScript中变量的作用域</title> <script type="text/javascript"> //javaScript中变量的作用域 //案例1 function fn1(){ if(true){ age = 6; // console.log(salary); //ReferenceError: salary is not defined } console.log(age); salary = 18; console.log(salary + "****"); } fn1(); console.log(salary + "----"); //参考网页https://www.cnblogs.com/m-chaoyue/p/6768254.html /* 在js中,变量的定义并不是以代码块作为作用域的,而是以函数作为作用域。也就是说,如 果变量是在某个函数中定义的,那么,它在函数以外的地方是不可见的。但是,如果该变量是定 义在if或者for这样的代码块中,它在代码块之外是可见的。 在js中,术语"全局变量"指的是定义在所有函数之外的变量

闭包的概念和其优缺点

喜你入骨 提交于 2020-02-28 14:14:06
1、变量作用域 要理解闭包,首先要理解javascript的特殊的变量作用域。 变量的作用域无非就两种:全局变量和局部变量。 javascript语言的特别之处就在于:函数内部可以直接读取全局变量,但是在函数外部无法读取函数内部的局部变量。 注意点:在函数内部声明变量的时候,一定要使用var命令。如果不用的话,你实际上声明的是一个全局变量! 2、如何从外部读取函数内部的局部变量? 出于种种原因,我们有时候需要获取到函数内部的局部变量。但是,上面已经说过了,正常情况下,这是办不到的!只有通过变通的方法才能实现。 那就是在函数内部,再定义一个函数。 function f1(){     var n=999;     function f2(){       alert(n); // 999     }   } 在上面的代码中,函数f2就被包括在函数f1内部,这时f1内部的所有局部变量,对f2都是可见的。但是反过来就不行,f2内部的局部变量,对f1就是不可见的。 这就是Javascript语言特有的"链式作用域"结构(chain scope), 子对象会一级一级地向上寻找所有父对象的变量。所以,父对象的所有变量,对子对象都是可见的,反之则不成立。 既然f2可以读取f1中的局部变量,那么只要把f2作为返回值,我们不就可以在f1外部读取它的内部变量了吗! 3、闭包的概念 上面代码中的f2函数

详解css的预编译语言sass

寵の児 提交于 2020-02-28 13:35:04
#千锋逆战班,打卡第二天# sass是css的预编译语言,比css更高更快更强 将sass语言写在后缀为 .sass 或者 .scss 的文件里面。 .sass文件 和 .scss 文件的区别 在 . scss文件里面和写css语法基本一致 在 . sass文件里面就没有大括号和分号,全部依靠缩进来维持关系 这两个文件被编译成css文件以后是一样的 sass工具编译 .sass 和 .scss文件 1. sass单文件编译 + 先写好一个 . scss 或者 . sass后缀的文件 + 打开命令行,切换到文件的目录 + 输入指令 - > sass 要编译的文件 编译后的文件名 + 每次修改scss文件都需要从新编译一下 2. sass 单文件实时编译 => 你先写好一个 . sass 或者 . scss 后缀的文件 => 打开命令行 , 切换到文件的目录 => 输入指令 - > sass -- watch 要编译的文件 : 编译后的文件名 => 一个终端只能监控一个文件 , 你要是想监控多个文件 , 需要开启很多终端 3. sass 文件夹实时编译 => 把一个文件夹里面的 sass 文件全部编译到另一个文件夹里面 => 先准备好一个文件夹 , 这个文件夹是专门来写 sass 文件的 => 代开命令行 , 切换到这个文件夹的目录 => 输入指令 - > sass -- watch

单片机程序死机,跑飞了可能是因为这几个方面的原因

做~自己de王妃 提交于 2020-02-28 13:26:21
1、意外中断。是否打开了某个中断,但是没有响应和清除中端标志,导致程序一直进入中断,造成死机假象; 2、中断变量处理不妥。若定义某些会在中断中修改的全局变量,这时要注意两个问题:首先为了防止编译器优化中断变量,要在这些变量定义时前加volatile,其次在主循环中读取中断变量前应该首先关闭全局中断,防止读到一半被中断给修改了,读完之后再打开全局中断;否则出现造成数据乱套。 3、地址溢出,常见错误为指针操作错误。我要着重说的是数组下标使用循环函数中循环变量,如果循环变量没控制好则会出现数组下标越界,意外修改系统的寄存器造成死机,这种情况下如果死机说明运气好,否则后面不知道发生什么头疼的事。 4、无条件的死循环;比如使用while(x);等待电平变化,正常情况下x都会变成0,就怕万一,因此最好加上时间限制; 5、看门狗没有关闭。有的单片机即使没使用看门狗开机时也有可能意外自动开启了最小周期的看门狗,导致软件不断复位,造成死机,这个要看芯片手册,最好在程序复位后首先应该显式清除看门狗再关闭看门狗; 6、堆栈溢出。最难查找的问题,对于容量小的单片机,尽量减少函数调用层级,减少局部变量,从而减少压栈的时候所需的空间。当你把以上几条都试过不能解决问题,试一试把你的被调用少函数直接内置到调用的地方并且把占用RAM大的局部变量改成全局变量,试一试说不定就可以了。 来源: oschina 链接:

解决bat文件中变量值有空格的问题(用于记录学习)

陌路散爱 提交于 2020-02-28 12:53:41
编写批处理时需要引用此变量,比如md %appdata%/K-Meleon,问题来了,系统报错 “子目录或文件C:/Documents 已经存在。处理:C:/Documents 时出错”。解决办法是增加引号即可:形如 “%appdata%/K-Meleon”或者 “%appdata%”/K-Meleon。 转载自: https://blog.csdn.net/liuyukuan/article/details/4680682?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task 来源: CSDN 作者: 秋风霁月 链接: https://blog.csdn.net/ichigorukia123/article/details/104552740

SAS进阶《深入解析SAS》之对多数据集的处理

放肆的年华 提交于 2020-02-28 12:44:22
SAS进阶《深入解析SAS》之对多数据集的处理 1. 数据集的纵向串接: 数据集的纵向串接指的是,将两个或者多个数据集首尾相连,形成一个新的数据集。 据集的横向合并: 数据集的横向合并,指的是将两个或者多个数据集根据某种原则横向合并起来,形成新的数据集。 2. 数据集的纵向串接两种方法:1)使用SAS DATA步的SET语句。2)使用SAS过程步的APPEND过程。 2.1. 使用SET步纵向串接形式如下: DATA 新数据集; SET 数据集1 数据集2 <数据集3 数据集4 ...>; BY 变量1 <变量2 变量3 变量4...>; RUN; 使用APPEND过程 PROC APPEND BASE=主数据集 <DATA=追加数据集> <FORCE>; 2.2. 使用APPEND过程,SAS不会处理主数据集中的观测,而是直接将追加数据集的观测添加到主数据集最后一条观测后面,且变量仅包含主数据集中的变量。 3. 数据集的横向合并使用MERGE的两种情况: 不使用BY语句合并,也称为一对一合并。 DATA WORK.COMBINED; MERGE WORK.DATA1 WORK.DATA2; RUN; 一对一合并原则:1)新数据集的第一条观测包含各个输入数据集中第一条观测的信息,第二条观测包含各个数据集中第二条观测的信息,不足的观测用缺失值不足。2