1.javascript中的变量范围只有2种:全局变量和函数局部变量,不存在block scope。
2.变量有原始类型和引用类型的区别。原始类型的赋值是值复制,引用类型的赋值是引用复制。
3.javascript中也有垃圾回收机制
var s = "hello"; // Allocate memory for a string
var u = s.toUpperCase( ); // Create a new string
s = u; // Overwrite reference to original string
上述代码执行完毕以后,字符串"hello"成为不可触及的,稍后会被垃圾回收机制释放空间。垃圾回收机制和闭包有很大关系。
4.javascript解释器启动后,在执行任何javascript代码之前,它首先创建一个全局对象(global object)。所有的全局变量和函数外部定义的function,都成为它的属性和方法。
5.当一个函数被调用时,则创建一个调用对象(call object)。所有的局部变量和函数参数,都成为它的属性,嵌套函数则成为它的方法。调用对象的声明周期比全局对象短,但起到的作用是一样的。
6.结合4和5,可以得知,javascript中所有的变量和函数,其实都是某个对象的属性(property)和方法(method)。
7.每次当javascript解释器开始执行一个函数后,它为函数创建一个新的执行上下文(execution context)。
8.每个execution context都有一个关联的scope chain。scope chain是一个对象列表,当javascript查找变量时,就自底向上进行查询。如果是最外层的code,则其scope chain上只有一个global object。如果是最外层的function,则其scope chain上有2个对象,先是call object(包含局部变量和参数),然后是global object。内层嵌套的function,则有3个对象,第一个是自身的call object,第二个是外层function的call object,最后才是global object。由于这个机制,所以代码可以访问到外围的变量,不能访问到内部嵌套的变量。
分享到:
相关推荐
如果需要按照变量名访问这些值,可以使用字典的`get`方法,如`variables.get('v0')`。 总之,虽然`locals()`和`exec()`能方便地在循环中生成变量,但它们通常不是最佳实践。在编写Python代码时,应优先考虑使用列表...
SHOW VARIABLES LIKE "%profiling%"; ``` 如果该变量值为0,我们可以使用以下命令开启: ```sql SET profiling = 1; ``` 开启后,执行需要分析的SQL语句,然后使用`SHOW PROFILES`命令,可以列出最近15次执行的...
- 变量文件可以包含一个名为 `get_variables`(或 `getVariables`)的特殊函数,它返回一个字典,字典的键是变量名,值是变量值。 - 这个函数可以接受参数,增加了灵活性。 - 如果这个函数存在,Robot Framework...
Chapter 4. Variables, Assignment And Scoping Rules Chapter 5. Logic, Comparisons, And Conditions Chapter 6. More Complex Data Types Chapter 7. Basic Function Definitions Chapter 8. More Advanced ...
Hormander.-.An.introduction.to.Complex.Analysis.in.Several.Variables
Chapter 4. How JavaScript Was Created Chapter 5. Standardization: ECMAScript Chapter 6. Historical JavaScript Milestones Part III: JavaScript in Depth Chapter 7. JavaScript’s Syntax Chapter 8. ...
Chapter 4. A Guided Tour of Xcode 6 Chapter 5. Testing Apps on iOS 8 Devices with Xcode 6 Chapter 6. An Introduction to Swift Playgrounds Chapter 7. Swift Data Types, Constants and Variables Chapter 8...
Chapter 4. Managing Software Part 2: Services Chapter 5. Managing Services with systemd Chapter 6. Mail Servers Chapter 7. FTP Chapter 8. Web Servers Chapter 9. News and Database Services Part 3: ...
Chapter 4. A Guided Tour of Xcode 7 Chapter 5. An Introduction to Xcode 7 Playgrounds Chapter 6. Swift Data Types, Constants and Variables Chapter 7. Swift Operators and Expressions Chapter 8. Swift ...
Chapter 4. Objects and Prototypes Chapter 5. Arrays Chapter 6. Functions Chapter 7. From Signs to Patterns Chapter 8. JavaScript in the Web Page Chapter 9. Graphic and Multimedia Tools Chapter 10. ...
Chapter 4. Set the i-th bit Chapter 5. Unset the i-th bit Chapter 6. Toggle the i-th bit Chapter 7. Given an unsigned number with only one bit set, find the position of this bit Chapter 8. Count the ...