首页 > 语言 > JavaScript > 正文

JavaScript函数、闭包、原型、面向对象学习笔记

2024-05-06 15:30:32
字体:
来源:转载
供稿:网友

断言

单元测试框架的核心是断言方法,通常叫assert()。

该方法通常接收一个值--需要断言的值,以及一个表示该断言目的的描述。

如果该值执行的结果为true,断言就会通过;

否则,断言就会被认为是失败的。

通常用一个相应的通过(pass)/ 失败(fail)标记记录相关的信息;

function assert(value, desc) {  let li = document.createElement('li');  li.className = value ? 'pass' : 'fail';  li.appendChild(document.createTextNode(desc));  document.getElementById('results').appendChild(li);}// 断言函数function assert(value, desc) {  if (value) {    console.log(`/033[32m ${desc} /033[0m`);  // 断言通过 绿色字体  } else {    console.log(`/033[31m ${desc} /033[0m`);  // 断言失败 红色字体  }}

函数

JavaScript是一门函数式语言 在JavaScript中,函数是第一型对象。函数可以共处,可以视作为其他任意类型的对象。就像普通的JavaScript数据类型,,函数可以被任意变量进行引用,或声明成对象字面量,甚至可以将其作为函数参数进行传递。 函数是第一型对象 可以通过字面量进行创建。 可以赋值给变量、数组或其他对象的属性。 可以作为参数传递给函数。 可以作为函数的返回值进行返回。 可以拥有动态创建并赋值的属性。 命名一个函数时,该名称在整个函数声明范围内是有效的。如果函数声明在顶层,window对象上的同名属性则会引用到该函数。 所有的函数都有一个name属性,该属性保存的是该函数名称的字符串。匿名函数的name属性值为空。 在JavaScript中,作用域是由function进行声明的,而不是代码块。声明的作用域创建于代码块,但不是终结于代码块(其他语言是终结于代码块的)
if (window) {  var x = 123;}alert(x);

执行代码后,会弹出123,是因为JavaScript在大括号关闭处并没有终止其作用域。

变量声明的作用域开始于声明的地方,结束于函数的结尾,与代码嵌套无关。 命名函数的作用域是指声明该函数的整个函数范围,与代码嵌套无关; 对于作用域声明,全局上下文就像一个包含页面所有代码的超大型函数。 所有的函数调用都会传递两个隐式参数:argument和this

作为函数进行调用

如果一个数不是作为方法、构造器、或者通过apply()或call()进行调用的,则认为它是“作为函数”进行调用的。

function ninja() {};ninja()var samurai = function() {};samurai()
以这种方式调用时,函数的上下文是全局上下文---window对象。

作为方法进行调用

当一个函数被赋值给对象的一个属性,并使用引用该函数的这个属性进行调用时,那么函数就是作为该对象的一个方法进行调用的。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选