从接触前端开发到现在已经将近 2 年了,最近又看了阮一锋写的: 《JavaScript 语言入门教程》 一书,重温 JavaScript 。
对于undefined、任意的函数以及symbol三个特殊的值分别作为对象属性的值、数组元素、单独的值时JSON.stringify()将返回不同的结果。
JSON.stringify是我们经常用到的的一个方法,它主要作用是将 JavaScript 值和对象转换为字符串。如:
这是JS 原生方法原理探究系列的第八篇文章。本文会介绍如何实现 JSON.stringify() 方法。
语法:var newArray = arr.flat(depth),参数说明:depth,可选,指定嵌套数组中的结构深度,默认值为1
在 JavaScript 中所有的数组都是对象,这意味着你可以给数组添加字符串属性:
变量声明需要使用 var 关键字,如果没有使用 var 关键字变量会直接打印出来。
博主最近在刷leetcode,做到二叉树套题的时候发现很多题的解题思路都是基于二叉树的层序遍历来完成的,因此写下这篇文章,记录一下二叉树层序遍历这件"神器"在实战的运用。
我们都知道,forEach() 方法对数组的每个元素执行一次给定的函数。它的语法也很简单:arr.forEach(callback(currentValue [, index [, array]])[, thisArg]):
数组去重,一般都是在面试的时候才会碰到,一般是要求手写数组去重方法的代码。如果是被提问到,数组去重的方法有哪些?你能答出其中的10种,面试官很有可能对你刮目相看。 在真实的项目中碰到的数组去重,一般都是后台去处理,很少让前端处理数组去重。虽然日常项目用到的概率比较低,但还是需要了解一下,以防面试的时候可能回被问到。
最近在学习的过程中发现了我之前未曾了解过的一些特性,发现有些很有趣并且在处理一些问题的时候可以给我一个新的思路。
首先来看一个比较简单的问题,我们想实现的就是每隔1s输出0-4的值,就是这么简单,看下错误写法: function test() { for (var i = 0; i < 5; ++i) {
「产品同学」在诉苦:线上用户不能提交表单了,带来了好多客诉,估计会是p0故障,希望尽快解决。
简单来讲其实就是对底层图形程序(比如:OpenGL ES)接口的调用,以在屏幕上画出东西。所以,是谁去调用这些接口呢?CPU。
一、起源 jQuery.event.add()方法最终是用addEventListener绑定事件的:
Node.js REPL(Read Eval Print Loop:交互式解释器) 表示一个电脑的环境,类似 Window 系统的终端或 Unix/Linux shell,我们可以在终端中输入命令,并接收系统的响应。
Fragment是什么?经常有人说vf这样的术语,其中的v代表了vertex即我们都知道是顶点。那f所代表的fragment是什么呢?说它之前需要先说一下像素。通俗的说,像素是构成数码影像的基本单元。那fragment呢?是有可能成为像素的东西。为什么叫有可能呢?就是最终会不会被画出来不一定,是潜在的像素。所以这会涉及到谁呢?GPU。
参考阮一峰文档: https://es6.ruanyifeng.com/#docs/object-methods#Object-assign
1、JavaScript 定义了几种数据类型? 哪些是原始类型?哪些是复杂类型?原始类型(或基本数据类型)和复杂类型的区别是什么? 最新的 ECMAScript 标准定义了 7 种数据类型: 6种原始
数组去重,一般都是在面试的时候才会碰到,一般是要求手写数组去重方法的代码。如果是被提问到,数组去重的方法有哪些?你能答出其中的10种,面试官很有可能对你刮目相看。在真实的项目中碰到的数组去重,一般都是后台去处理,很少让前端处理数组去重。虽然日常项目用到的概率比较低,但还是需要了解一下,以防面试的时候可能回被问到。文末有福利哦
for...of 语句创建一个循环来迭代可迭代的对象。在 ES6 中引入的 for...of 循环,以替代 for...in 和 forEach() ,并支持新的迭代协议。for...of 允许你遍历 Arrays(数组), Strings(字符串), Maps(映射), Sets(集合)等可迭代的数据结构等。
迭代器模式是指提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。在使用迭代器模式之后,即使不关心对象的内部构造,也可以按顺序访问其中的每个元素。
javascript能做什么? 语句与注解,标识符,字面量,变量命名规范 JavaScript中的数据类型,其它类型如何转为数据型,操作符
其实有很多有用的东西,当时学习了,也记住了,但是时间久了就是记不住,所以导致在日常开发中总是想不起来原来这个东西可以这么用,而去选择了更加复杂和麻烦的方式。其实我们日常学习的知识就是拿来用的,即使你今天把知识点背下来了,没有去思考这个知识点我们可以用来干嘛,不需要几天就会慢慢地忘掉。所以今天我们来了解一下在日常学习时你遗漏掉或者忘掉或者没有思考过的你不知道的 JSON.stringify() 的威力。
迭代器是被设计专用于迭代的对象,带有特定接口。所有的迭代器对象都有next方法,会返回一个结果对象。该结果对象有两个属性:对应下一个值的value,以及一个布尔类型的done,其值为true时表示没有更多对值可供使用。
两个数字相加,返回数字相加的和;两个字符串相加,变量会连接成一个字符串;如果数字与字符串相加,返回字符串。
大概了解了HTML和CSS,到了前端的精华JavaScript。 学习笔记,ALL FROM 廖雪峰的官方网站
ECMAScript变量是松散类型的,变量可以保存任何类型的数据,每个变量不过是一个用于保存任意值的命名占位符。有三个关键字可以声明变量,var是在ECMAScript所有版本都可以使用,而const和let只能在ES6版本后使用
而阅读源码的终极目的还是应用,在这个想法下,我盘点了一些可以快速在工程中应用的( 或许冷门 )知识,希望读者可以get到
通过这个函数转化后的值仅仅有两个:数值和NaN,通过parseInt也能转化为数值。可是像“134df”转化后的值为134,而Number(“134df”)则是NaN;
for循环中出现多个异步函数(比如ajax请求,或者node后端执行一些数据库操作或文件操作),如果想要这些异步串行变为同步应该怎么做?
typeof undefined //"undefined" undefined :是一个表示"无"的原始值或者说表示"缺少值",就是此处应该有一个值,但是还没有定义。当尝试读取时会返回 undefined; 例如变量被声明了,但没有赋值时,就等于undefined
使用 typeof 检查一个 Number 类型的数据时,会返回 number(包括 NaN 和 Infinity)
在 JS 面试中,经常会看到一些简单而又沙雕的题目,这些题目包含一些陷阱,但这些在我们规范的编码下或者业务中基本不会出现。 有些面试官就是这样,不专注于制定代码的标准和规范上,却用不规范的代码去检验别人是否细心。
在 JavaScript 中 , 数组 的 " 索引 " 又称为 " 下标 " , 从 0 开始计数 , 是 可用于访问 数组元素 的 " 序号 " ;
ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。
按照程序语法逻辑,变量应该在声明语句之后才可以使用,即变量可以在声明之前使用,其值为undefined。即所谓的“变量提升”。
注释问题:单行,多行,方法注释等..... 快捷键:ctrl+/ 和ctrl+shift+/
模拟退火算法借鉴了统计物理学的思想,是一种简单、通用的启发式优化算法,并在理论上具有概率性全局优化性能,因而在科研和工程中得到了广泛的应用。
思想: 双重 for 循环是比较笨拙的方法,它实现的原理很简单:先定义一个包含原始数组第一个元素的数组,然后遍历原始数组,将原始数组中的每个元素与新数组中的每个元素进行比对,如果不重复则添加到新数组中,最后返回新数组;因为它的时间复杂度是O(n^2),如果数组长度很大,效率会很低。
ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效(块级作用域)。
在 JavaScript 中,是没有块级作用域的概念的,在代码块内声明的变量,其作用域是整个函数作用域而不是块级作用域。let 和 const 作为加强版的 var,让程序员写出更安全,更高效的代码。
领取专属 10元无门槛券
手把手带您无忧上云