侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

『JavaScript』核心

2024-05-05 星期日 / 0 评论 / 0 点赞 / 39 阅读 / 4817 字

弱类型语言 JavaScript是一种弱类型的语言。变量可以根据所赋的值改变类型。原始类型之间也可以进行类型转换。其弱类型的物质为其带来了极大的灵活性。 注意:原始类型使用值传递,复合类型使用引用

弱类型语言

JavaScript是一种弱类型的语言。变量可以根据所赋的值改变类型。原始类型之间也可以进行类型转换。其弱类型的物质为其带来了极大的灵活性。

注意:原始类型使用值传递,复合类型使用引用传递。

原始类型 Key
布尔型 bool
数值型 number
字符串型 string
空类型 null
未定义类型 undefined

toString方法可以把数值或布尔值转换为字符串。parseFloat和parseInt函数可以把字符串类型转变为数值。双重非『!!』可以把字符串或数值转变为布尔值。

复合类型 Key
对象 object
函数 function

prototype

JavaScript是一种基于原型的语言,所以我们可以通过对JavaScript对象的原型进行操作来达成一些目的。比如:

  • 给某个对象添加方法;
  • 给某个对象添加属性;
  • 实现类似面向对象的功能;
  • ...

如果把JavaScript中的所有元素都当成对象来看待的话,我们可以得到一个合理的数据存储方式:JSON。

在JavaScript内部,所有的元素都可以认为是以JSON方式进行存储的。换言之,每一个元素都是有Key以及Value两部分组成。所以以下给对象Anim添加方法的方式都是正确的:

// Anim Classvar Anim = function() {  // ...};// Add function to AnimAnim.prototype.start = function() {};Anim.prototype.stop = function() {};// Another Way to add function to a classAnim.prototype = {  start: function() {    // ...  },  stop: function() {    // ...  }};

我们还可以使用下面的方式给Anim添加方法。这一方式是将prototype.method看作是一个key,将function(name,fn)看作是一个value,然后通过给function(name,fn)传入对应的参数来实现给Anim添加方法的目的。我们还在method中加入了return this,以此来实现链式调用的目的。

 // Add a method to the Function object that can be used to declare methods.Function.protype.method = function(name, fn) {  this.prototype[name] = fn;  return this; // 链式调用};var Anim = function() {};Anim.method('start', function() {  // ...});Anim.method('stop', function() {  // ...}); // Add a method to the Function object that can be used to declare methods.Function.protype.method = function(name, fn) {  this.prototype[name] = fn;  return this;};var Anim = function() {};Anim.method('start', function() {  // ...});Anim.method('stop', function() {  // ...});

链式调用

Anim.method('start', function() {  // ...}).method('stop', function() {  // ...});

函数是一等对象

在JavaScript中,『函数』被认为是带有可执行代码的复合对象。也就是说,对象所拥有的,函数都拥有,且对象所能做的,函数都可以做。

主要特性:

  • 可以存储于变量中;
  • 可以作为参数传给其他函数;
  • 可以作为返回值从其他函数传出;
  • 可以在运行时构造。

由于函数是一种对象,所以我们可以以如下方式来使用函数:

// Function as Object(function() {  // ...})()(function(a, b) {  // ...  return a + b})(1, 2)  

对象的易变性

在JavaScript中,所有的元素都可以被当成是对象,而且JavaScript中,所有的对象都是易变的。

我们可以使用如下的方式在程序运行时给JavaScript对象属性:

可以在需要的时候给对象添加属性(包括方法):

function aFunction(){};aFunction.aAttribute = 0;

可以在需要的时候,通过对prototype的操作,给JavaScript对象添加方法:

function person(){  this.name="Aaron";  this.age=14;};person.prototype = {  getName: function(){    return this.name;  },  getAge: function(){    return this.age;  }}

注意:由于JavaScript可以在任何时候为已经存在的对象添加属性、方法,所以我们往往不能保证最终被调用的属性、执行的方法是否是我们最初所编写的。

广告 广告

评论区