任何语言的核心都是包括这几下内容:
基本的语法
操作符
数据类型
函数
流程控制语句
循环
.....
javaScript语言是一门借鉴c语言,java Perl 语言的弱类型语言
基本语法是:
区别大小写,任何标识符都区别大小写,(变量,函数名,操作符...); 标识符不能使用关键字和保留字
什么是标识符?
标识符就是数据的指针,就是引用在内存当中的存储的数据。我们归根到底就是在操作数据的。数据在内存中开辟空间,来进行存储数据,我们需要引用数据的时候,就需要来查找相对应的数据,就需要给数据标识索引,来方便我们找到我们需要的数据。这就是标识符的用处。比如:
```javascript
let a = 24;
// 在内存中开辟一个空间,来储存 24 这个数字,但是,我们要用标识符来引用这个数字,我们可以通过 这个标识符来找到 24 数字。我们也可以通过标识符来保存这个值,也可以保存其他值,都是可以的。这 个是标识符作用,来保存值,来引用值的指针,也可以是保存值的占位符。
```
标识符:
变量
常量
函数名
函数参数
属性
......
都可以是标识符的范畴
```javascript
let myFn = (a,b) => {
return a + b;
}
let obj = {
name : 'xuyinghao',
age : 18,
sayHi () {
alert(this.name + ' ' + this.age);
};
};
class My {
constructor () {
this.name = 'xuyinghao';
this.age = 18;
}
sayHi () {
alert(this.name + ' ' + this.age);
}
}
```
上面的例子都是用变量,函数名,函数的参数,(都是标识符),来进行引用我们需要的值。所以,操作数据的核心是我们要利用好标识符,来进行引用我们要查找的数据。
如何利用好标识符?
首先,我们要利用好标识符的话,要考虑数据类型,这个以后我们要研究的,在javaScript 数据类型是有两种,一个是基本数据类型和引用数据类型。在用标识符的话,要看标识符指向的数据的类型,如果是指向的是基本数据类型的话,是按值来进行传递,包括函数的参数,是按照值进行传递的。因为函数的参数也是局部变量,可以在函数体中,直接使用的。是局部的变量的概念。如果标识符是指向的是引用类型的话,是按照的是内存地址的传递的。标识符会指向同一的内存地址,指向同一的对象(数据);我们需要深拷贝。来把整个内存地址来进行拷贝。这个会往下讲。
如果,我们在操作数据的时候,需要给特定的数据加个标记,增加属性。来方便我们操作数据。都可以自定义的标识符。来提高我们的操作数据的灵活性。
标识符的核心是变量:
变量是可以保存不同的值,它就是在内存中,是立体的空间,我们程序员可以根据不同的阶段和需求,赋值(也就是让不同的数据驻留这块空间),这样,我们通过变量来提高我们操作数据的灵活性。
常量 : 是不可变化的常量,是我们需要固定的数据,为了防止修改,我们可以让固定不变的数据指定为常量。比如:
```javascript
const b = 13;
b = 14;
console.log(b); // Uncaught TypeError: Assignment to constant variable.
```
不可以修改常量的值。可以保护数据的可读不可以写的。
定义变量的时候,我们可以赋值以及引用相关的数据类型。如果定义,没有赋值的话,是undefined,undefined也是特殊的数据类型,它的用处是指向定义的变量却没有值。也可以做判断用的。函数名也是指向定义函数在内存中的地址的指针,也是标识符,我们可以通过调用函数名 + ()的形式来进行调用相对应的函数体来进行触发函数的执行。如果没有返回值的函数,也是undefined; 所以,定义标识符的话,要赋值和声明数据类型的。
我们可以通过js来进行修改数据对象的样式,属性,和内容,这个是非常强大的。通过js我们可以自定义对象的属性和标识,来进行操作数据对象。这个是标识符的强大的地方和灵活的地方。比如:我们的开关思想,属性标识符,自定义对象的属性等等。都可以用到是标识符的指针功能。
标识符的抽象化:
```javascript
let q = 12;
function fn () {
return q * q
};
// 用递归来进行阶乘