分类标签归档:JS

JavaScript的优点和缺点


与所有计算机语言一样,JavaScript具有某些优点和缺点。许多优点和缺点都与JavaScript经常在客户端浏览器中执行有关,但现在还有其他方法可以使用JavaScript,使其具有与服务器端语言相同的优点。

JavaScript的优点

  • 速度 。客户端JavaScript非常快,因为它可以在客户端浏览器中立即运行。除非需要外部资源,否则JavaScript不会受到后端服务器的网络调用的阻碍。它也没有必要在客户端编译,这给了它一定的速度优势(授予,增加一些风险取决于所开发代码的质量)。
  • 简单 。 JavaScript的学习和实现相对简单。
  • 人气 。 JavaScript在Web中随处...

阅读全文...

JavaScript 箭头函数


Arrow函数是用于编写JavaScript函数表达式的新ES6语法。较短的语法节省了时间,并简化了函数范围。

什么是箭头函数?

箭头函数表达式是使用“胖箭头”标记( => )编写函数表达式的更简洁的语法。

基本语法

以下是箭头函数的基本示例:

// ES5 syntax
 var multiply = function(x, y) {
  return x * y;
 };

 // ES6 arrow function
 var multiply = (x, y) => { return x * y; };

 // Or even simpler
 var multip...

阅读全文...

JavaScript 布尔类型


布尔值是计算机编程语言中常用的原始数据类型。根据定义,布尔值有两个可能的值: truefalse

在Javascript中,通常存在对boolean的隐式类型强制。例如,如果你有一个if语句来检查某个表达式,那么该表达式将被强制转换为布尔值:

var a = 'a string';
 if (a) {
  console.log(a); // logs 'a string'
 }

只有少数值会被强制为false:

  • 假(不是真的被胁迫,因为它已经是假的)
  • 空值
  • 未定义
  • 为NaN
  • 0
  • ''(空字符串)

所有其他值将被强制为true。 当一个值被强制...

阅读全文...

Javascript回调函数


本文简要介绍了Javascript编程语言中回调函数的概念和用法。

功能是对象

我们需要知道的第一件事是在Javascript中,函数是一流的对象。因此,我们可以像处理其他对象一样使用它们,比如将它们分配给变量并将它们作为参数传递给其他函数。这很重要,因为后一种技术允许我们在应用程序中扩展功能。

回调函数

回调函数是_作为参数_传递给另一个函数的函数,以便稍后“回调”。接受其他函数作为参数的函数称为高阶函数 ,它包含回调函数执行_时_的逻辑。这两者的结合使我们能够扩展我们的功能。

为了说明回调,让我们从一个简单的例子开始:

function createQuote(quote, call...

阅读全文...

JavaScript类


JavaScript本身没有类的概念。

但是我们可以通过利用JavaScript的原型性质来模拟类的功能。

本文假设您对原型有基本的了解。

为了清楚起见,我们假设我们想要创建一个可以执行以下操作的类

var p = new Person('James','Bond'); // create a new instance of Person class
    p.log() // Output: 'I am James Bond' // Accessing a function in the class
    // Using sette...

阅读全文...

JavaScript 闭包


闭包是函数和声明该函数的词法环境(范围)的组合。闭包是Javascript的基础和强大属性。本文讨论关闭闭包的'方式'和'原因':

//we have an outer function named walk and an inner function named fly

 function walk (){

  var dist = '1780 feet';

  function fly(){
    console.log('At '+dist);
  }

  return fly;
 }

 var flyFunc = walk(); /...

阅读全文...

JavaScript注释


程序员使用注释向其源代码添加提示,注释,建议或警告;它们对代码的实际输出没有影响。注释可以非常有助于解释您的代码应该或应该做什么的意图。

在开始经常注释时,这总是最佳做法,因为它可以帮助那些阅读代码的人了解您的代码究竟打算做什么。

JavaScript有两种在代码中分配注释的方法。

第一种方式是//注释; //在同一行上的所有文字后面的注释。例如:

function hello() {
  // This is a one line JavaScript comment
  console.log("Hello world!");
 }
 hello();

第二种方...

阅读全文...

JavaScript比较运算符


JavaScript具有 严格类型转换 比较。

  • 严格比较(例如===)仅在操作数类型相同时才为真。

  • 更常用的抽象比较(例如==)在进行比较之前将操作数转换为相同的Type。

  • 对于关系抽象比较(例如,<=),操作数首先在比较之前转换为基元,然后转换为相同类型。

  • 使用Unicode值基于标准词典排序比较字符串。

比较特点:

  • 当两个字符串在相应位置具有相同的字符序列,相同的长度和相同的字符时,它们严格相等。

  • 当两个数字在数值上相等(具有相同的数值)时,两个数字严格相等。 NaN不等于任何东西,包括NaN。正负零彼此相等。

  • 如果两个布尔操作数都为真或两者都为假,则它...

阅读全文...

Javascript并发模型和事件循环


Javascript运行时是单线程的,这意味着它可以一次执行一段代码。为了理解Javascript中的并发模型和事件循环,我们必须首先解决与之相关的一些常见术语。首先让我们了解什么是调用堆栈。

调用堆栈是一种简单的数据结构,它记录了我们当前代码中的位置。因此,如果我们进入一个函数调用函数,它将被推送到调用堆栈,当我们从函数返回时,它会从堆栈中弹出。

让我们用一个代码示例来理解调用栈 -

function multiply(x,y) {
   return x * y;
 }

function squared(n) {
   return multiply(n,n)
}

functio...

阅读全文...

JavaScript条件三元运算符


基本用法

三元运算符是在表达式中编写if-else的紧凑方法。

const thing = (condition) ? <if true> : <if false>;

例如

const cappedInput = input > 50 ? 50 : input // this will cap the input at 50

否则,如果

你也可以链接三元运算符,这样你就会有一个if-else if-else行为

<first condition> ? <value if first true>
 : <second cond...

阅读全文...