一、不同点

1、保存方式

(1) 基本数据类型值保存在变量中,操作的是实际值,不能直接追加属性和方法

a.name = 'a'
a // 1

(2) 引用类型保存在内存中,操作的是对象的引用,可以直接追加属性和方法

a = {name:'a'}
a.age = 18
a // {name: "a", age: 18}

2、复制变量的方式

(1) 基本数据类型复制变量,实际上是把原始值的副本复制给变量,变量的改变不会影响到原始值,是深拷贝

a = 1
b = a
b = 2
a // 1

(2) 引用类型复制变量,是把指针复制给变量,指针实际的指向还是原始对象的内存地址,变量的改变会影响到原始值,是浅拷贝

a = {}
b = a
b.name = 'b'
a // {name: "b"}

二、相同点

参数的传递方式都是按值传递给局部变量