javaScript学习笔记——基本概念

1.javaScript的定义

①是一种专门为网页交互而设计的脚本语言

② 组成:

   

2.<script>元素

3.区分大小写

ECMAScript中的一切(变量、函数名,操作符)都区分大小写;

4.标识符

①第一个字符必须是字母、下划线、$,其他字符可以是字母、下划线、$或数字;

②ECMAScript标识符一般使用驼峰大小写格式,即第一个字母小写,剩下的每个单词的首字母大写;

③关键字是语言保留的,不能用做标识符

5.变量

①ECMAScript的变量是松散类型的(可以用来保存任何类型的数据)

② var s=10;(用var定义的变量是定义该变量作用域的局部变量,这个变量在该作用域执行完毕就会被销毁)

   如果省略var操作符,该变量就成了全局变量,一般不再局部作用域定义全局变量,因为这很难维护;

6.typeof操作符

      

7.数据类型的分类

8.基本类型和引用类型的区别

① 保存方式不同(基本数据类型保存的是实际值,引用 类型保存的是对象)的引用

②复制变量值存在不同

a.基本类型:

   var num1=5;

   var num2=num1;

基本数据类型的变量值复制,两个变量两个地址,只是值相同,两个变量参与任何操作都互不影响。

b.引用类型:

var obj1=new Object();
var obj2=obj1;
obj1.name="abc";
alert(obj2.name);  //"abc"

因为引用类型实际保存的是一个引用即指针,所以引用类型复制就将存在1地址的指针复制一份,放到一个新地址中,即两个不同的地址存放着相同的指针,这两个指针指向存储在堆中的同一个对象,所以改变其中一个变量,就会影响到另一个变量

传递参数都是按值传递

引用类型保存与复制的是对象的一个指针

a.传递基本数据类型

function addTen(num){
  num+=10;
  return num;
}
var count =20;
var result=addTen(count);
alert(count);//20
alert(result);//30

num实际上是局部变量,num与count互不相识,仅仅是具有相同的值,互不影响;

b.传递引用类型

function setName(obj){
  obj.name="amy";
}
var person =new Object();
setName(person);
alert(person.name);  //"amy"

函数传递的person对象的一个引用(指针),函数是按值传递,但是obj中保存的指针依旧会按引用访问对应的对象,obj和person指向的是同一个对象,所有obj添加属性,person也具有相同的效果;

function setName(obj){
  obj.name="amy";
  obj=new Object();//即使在函数内部修改了参数的值,但原始引用依旧没有变
  obj.name="abc";//重写obj时,该变量中保存的是局部对象的指针,对其进行的属性添加,作用对象是该局部        
                 //对象,当函数执行结束,局部对象立即被销毁
}
var person =new Object();
setName(person);
alert(person.name);  //"amy",证明函数传递的参数即使是引用类型,也是按值传递

9.操作符

10.函数

①ECMAScript中的函数在定义时,不必指定是否有返回值,任何函数在任何时候都可以通过return语句返回要返回的值;函数在执行完return语句之后停止并立即退出,位于rerun之后语句将永远不会执行;

②return语句也可以不带任何返回值,则函数停止后将返回undefined;

③函数不介意传递进来多少个参数,也不在乎参数是什么数据类型,函数体内可以通过arguments对象来访问这个参数数组,使用arguments.length可以确定传进来多少个参数

function doAdd(){
if(arguments.length==1){
  alert(arguments[0]+10);
}else if(argumentslength==2){
  alert(arguments[1]+arguments[0]);
}
}
doAdd(10);  //20
doAdd(30,20);  //50

④没有重载

ECMAScript函数没有签名,因为其参数是由包含0个或多个值的数组来表示的,而没有函数签名,正真的重载是做不到的,

如果定义了两个名字相同的函数,则该名字只属于后定义的函数

猜你喜欢

转载自blog.csdn.net/baidu_39067385/article/details/81102775
今日推荐