JavaScript Advanced Programming: Variables and Scope

JavaScript Advanced Programming: Variables and Scope

1. Original value and reference value

The values ​​of the six simple data types are all primitive values. When a primitive value is assigned to another variable through a variable, a new value will be copied, and the two are independent of each other.

let num1 = 5
let num2 = num1


When a reference value is assigned to another variable through a variable, a value is also copied. This value is actually a pointer (reference), and the pointer still points to the same object.

let obj1 = new Object()

let obj2 = obj1

Since they point to the same reference object, adding properties to obj1 will also affect obj2 .

obj1.name = "zhangsan"

console.log(obj2.name) // zhangsan


When passing parameters to a function, there is only one situation where the parameters are passed by value, which is the same as assigning a variable. However, with reference values, the value passed is a pointer, but the pointer still points to the same object.

2. instanceof

typeof is generally suitable for judging primitive values, but not for reference values, because null and other objects return objects, and the specific type of the object is unknown. The best way to determine what type of object the reference value is is to use instanceof expression.

console.log(1 instanceof Object) //false
let obj = new Object();
console.log(obj instanceof Object) //true
console.log(null instanceof Object) //false



function fun(){
    //
}
console.log(fun instanceof Object) //true
console.log(fun instanceof Function) //true

console.log([] instanceof Object) //true
console.log([] instanceof Array) //true

3. Scope

The scope of a variable is called a scope or execution context. A variable is no longer visible outside of the scope. All systems have a scope chain when searching for a variable. First, look for the variable in the closest block scope that references it. If it is not found, continue looking in the outer local scope. If it is not found again, look in the global scope. If it is not found, an error ReferenceError: xxx is not defined will be reported.

This is the end of this article about variables and scope in advanced JavaScript programming. For more information about JavaScript variables and scope, please search previous articles on 123WORDPRESS.COM or continue to browse the following related articles. I hope you will support 123WORDPRESS.COM in the future!

You may also be interested in:
  • Let’s learn about JavaScript variable scope
  • Detailed explanation of variable scope in JavaScript
  • Do you know variable declaration in JavaScript?
  • Detailed examples of variable and function promotion in JavaScript
  • How to turn local variables into global variables in JavaScript
  • JavaScript variables and transformation details

<<:  TABLE tags (TAGS) detailed introduction

>>:  Designing the experience: What’s on the button

Recommend

Examples of using provide and inject in Vue2.0/3.0

Table of contents 1. What is the use of provide/i...

Talk about important subdirectory issues in Linux system

/etc/fstab Automatically mount partitions/disks, ...

Realizing tree-shaped secondary tables based on angular

First look at the effect: Code: 1.html <div cl...

React and Redux array processing explanation

This article will introduce some commonly used ar...

Vue recursively implements three-level menu

This article example shares the specific code of ...

Detailed explanation of using Nginx reverse proxy to solve cross-domain problems

question In the previous article about cross-doma...

Vue3 AST parser-source code analysis

Table of contents 1. Generate AST abstract syntax...

JavaScript pie chart example

Drawing EffectsImplementation Code JavaScript var...

...

Detailed explanation of the use of custom parameters in MySQL

MySQL variables include system variables and syst...

Common commands for deploying influxdb and mongo using docker

Deploy database based on docker sudo docker pull ...