头部背景图片
小畅童鞋的学习笔记 |
小畅童鞋的学习笔记 |

js数组操作

2019-08-19
  • 传统的js数组方法: concat(),push(),pop(),shift(),unshift(),splice(),slice(),join(),sort(),reverse();
  • ES5新增数组方法: indexOf(),lastIndexOf(),map(),filter(),forEach(),some(),every(),reduce(),reduceRight();

Array.map()

此方法是将数组中的每个元素调用一个提供的函数,结果作为一个新的数组返回,并没有改变原来的数组

let arr = [1, 2, 3, 4, 5]
    let newArr = arr.map(x => x*2)
    //arr= [1, 2, 3, 4, 5]   原数组保持不变
    //newArr = [2, 4, 6, 8, 10] 返回新数组

Array.forEach()

此方法是将数组中的每个元素执行传进提供的函数,没有返回值,直接改变原数组,注意和map方法区分

let arr = [1, 2, 3, 4, 5]
   num.forEach(x => x*2)
   // arr = [2, 4, 6, 8, 10]  数组改变,注意和map区分

二叉树的前序遍历、中序遍历和后序遍历之间还原二叉树

2019-08-19

1、概念

(1)前序遍历
a、访问根节点;b、前序遍历左子树;c、前序遍历右子树。

(2)中序遍历
a、中序遍历左子树;b、访问根节点;c、中序遍历右子树。

(3)后序遍历
a、后序遍历左子树;b、后续遍历右子树;c、访问根节点。

算法编程题

2019-08-18

本文总结了很多简单的算法编程:

  • 降维
  • 排序
  • 去重
  • 统计一个字符串出现最多的字母
  • 不借助临时变量,进行两个整数的交换
  • 找出下列正数组的最大差值
  • 随机生成指定长度的字符串
  • 实现类似getElementsByClassName 的功能
  • 判断一个单词是否是回文?
  • 找出最长单词
  • string 里的每个单词首字母大写
  • 判断字符串是否是指定字符结尾
  • 重复字符串指定次数
  • 使用canvas 绘制一个有限度的斐波那契数列的曲线?
  • 实现阶乘
  • 过滤敏感词
  • 二分查找
  • App版本比较
  • 生成菲波那切数列
  • 使用JS 实现二叉查找树(Binary Search Tree)

跟着我一起学习吧~

前后端交互面经

2019-08-10

秋招季,总结一下前后端交互部分面经~

一. 跨域问题:

什么是跨域?

跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript施加的安全限制。
所谓同源是指,协议,域名,端口均相同。
注意:
如果是协议和端口造成的跨域问题“前台”是无能为力的;
在跨域问题上,域仅仅是通过“URL的首部”来识别

解决方案:

特别注意两点:
第一,如果是协议和端口造成的跨域问题“前台”是无能为力的,
第二:在跨域问题上,域仅仅是通过“URL的首部”来识别而不会去尝试判断相同的ip地址对应着两个域或两个域是否在同一个ip上。
1. JSONP方式解决跨域问题
script标签src属性中的链接却可以访问跨域的js脚本,利用这个特性,服务端不再返回JSON格式的数据,而是返回一段调用某个函数的js代码,在src中进行了调用,这样实现了跨域。
2. CORS解决跨域问题
对后台进行配置,例如:PHP端修改header,然后配置Apache web服务器跨域
3. 代理请求方式解决接口跨域问题
前端对接口进行代理:(前端ajax请求的是本地接口;本地接口接收到请求后向实际的接口请求数据,然后再将信息返回给前端;一般用node.js即可代理;)
详情参考https://segmentfault.com/a/1190000012469713

Javascript面经

2019-08-08

秋招季,总结一下HTML部分面经~

一. JS作用域和作用域链

1. 作用域:

作用域就是变量和函数的可访问范围,或者说变量或函数起作用的区域。

  1. javascript函数的作用域:
    函数内的区域,就是这个函数的作用域,变量和函数在这个区域都可以访问操作。最外层函数外的区域叫全局用域,函数内的区域叫局部作用域
  2. javascript变量的作用域:
    在源代码中变量所在的区域,就是这个变量的作用域,变量在这个区域内可被访问操作。在全局作用域上定义的变量叫全局变量,在函数内定义的变量叫局部变量

2. 作用域链

作用域链(Scope Chain)是javascript内部中一种变量、函数查找机制,它决定了变量和函数的作用范围,即作用域。每个作用域都有一条对应的作用域链,链头是全局作用域,链尾是当前函数作用域。

3. 作用域链的作用

是保证执行环境里有权访问的变量和函数是有序的,作用域链的变量只能向上访问,变量访问到window对象即被终止,作用域链向下访问变量是不被允许的。

CSS面经

2019-08-03

秋招季,总结一下CSS部分面经~

一. CSS3盒子模型

  • 盒子模型
    IE 盒子模型和标准 W3C 盒子模型的范围包括 margin、border、padding、content
    使用“标准 W3C 盒子模型”:在网页顶部加上Doctype声明。
  • 在不同标准里width的区别
    在标准 W3C 盒子模型中,width指content部分的宽度
    在 IE 盒子模型中,width表示(content+padding+border)这三个部分的宽度
  • box-sizing
    box-sizing: content-box 是 W3C 盒子模型;content-box动态大小 | 受 “边框” “边距” 等属性影响
    box-sizing: border-box 是 IE 盒子模型;border-box固定大小 | 不受 “边框” “边距” 等属性影响

HTML面经

2019-07-23

秋招季,总结一下HTML部分面经~

一. 行内元素、块级元素、空元素举例

  • 空元素没有内容的HTML元素。
    空元素在开始标签中关闭的。(单标签)如:br、hr、img、input、param、meta、link
  • 行内元素:a、b、span、img、input、strong、select、label、em、button、textarea
  • 块级元素:div、ul、li、dl、dt、dd、p、h1-h6、blockquote

块级元素和行内元素区别

  1. 占据空间
    块级元素总是单独占一行,并从新的一行开始;
    行内元素和其他同为行内元素占据同一行。
  2. Width,height,Margin-padding是否可设置
    块级可以,行内不可以。
    通过改变元素的display可改变此属性。
  3. 宽度
    行内元素宽度与内容相关;
    块级元素不设置则与浏览器同宽。
  4. 容纳内容
    块级元素可容纳内联元素和其他块元素;
    行内元素只可容纳文本和其他行内元素。

使用flex布局来搭建基本的页面布局

2019-06-19

我们的目的是为了实现这样的布局:
Image1.png

Vue_CLI脚手架学习与搭建

2019-06-18

今天我们来学习一下Vue CLI脚手架,本文主要是总结Vue CLI脚手架搭建过程及总结遇到的问题,跟着我一起来学习吧~

1.node.js安装与环境配置

1.1 node.js安装
  • 安装包下载地址:https://nodejs.org/en/
  • 下载完成后,双击node-v10.16.0-x64.msi,开始安装Node.js,全程默认一直点击下一步(注意:安装地址最后不要默认选择C盘,选择D盘),安装完毕后点击finish结束安装进程,然后在VS code终端,依次输入命令:

    1
    2
    node -v
    npm -v
  • 如果正确输出版本号,说明我们的NodeJSNPM就安装好了,如下图所示:
    Image1.png

  • 此处说明下:新版的Node.js已自带npm,安装Node.js时会一起安装,npm的作用就是对Node.js依赖的包进行管理,也可以理解为用来安装/卸载Node.js需要装的东西

自定义构建Echarts问题描述

2019-06-15

今天我们来学习一下Echarts,本文主要是总结自定义构建Echarts遇到的问题,跟着我一起来学习吧~

1.使用命令行,创建自己的工程:
1
2
mkdir myProject
cd myProject
2.在 myProject 目录下使用命令行,初始化工程的 npm 环境并安装 echarts(这里前提是您已经安装了 npm):
1
2
npm init
npm install echarts --save

Image1.png

Lililich's Blog