【笔记整理】—— 2.9 JavaScript 变量 | 函数 | 对象

JavaScript背景

四句精髓
  1. var 声明变量
  2. 五种基本类型,其余为引用类型
  3. function 声明函数,函数名实质上是函数的地址
  4. JavaScript 中一切皆对象
三大特点
  • 解释性语言
  • 动态语言(变量和函数的返回值是不指定数据类型的)
  • 基于原型的面向对象

JS 最初在浏览器端运行;node.js 类似于jsp 的 java 后台;node.js 环境类似tomcat ,是一个解析器,能接受用户请求,装了node.js 环境后可以写服务器端代码

一、变量

变量的作用是给某个值或对象标注名称。

1 变量的声明的方式
  1. 声明后赋值

    var foo;  //声明变量
    foo = “abc”;
    
  2. 声明和赋值同时进行:

    var foo = “abc”;
    
  3. JavaScript没有变量类型的概念 ,给一个变量赋什么样的值,这个变量就是什么类型的变量。
    被声明但没有被赋值的变量,其值为undefined

    var foo;
    document.write(foo);
    
  4. 省略var——隐式声明变量
    JavaScript中的var关键字可以省略,这样声明的变量称为隐式声明变量。隐式声明的变量为全局变量,即使在函数内部声明的变量也是全局变量。声明变量时尽量不要省略var。

2 常量
  1. 常量使用const关键字声明,习惯上常量都为大写字母。const Foo = 7;

  2. 常量即使再次赋值,这个常量的值也不会发生改变。

    const FOO = 7;
    FOO = 8;
    Document.write(FOO);
    
  3. 如果在声明时没有对常量进行赋值的话,它的值就是undefined。处理方式与变量相同。

    const Foo;
    document.write(Foo);	//undefined
    
3 数据类型

可以存放任何类型的数据

5种基本数据类型: ( 除此之外为Object(引用)类型 )

  • 字符串
  • 数值型
  • 布尔型
  • Null型
  • undefined型
字符串类型
  1. 通常使用" "' '括起来的字符,搭配使用可以减少转义字符的出现。两者本身无区别

  2. 如果需要表达特殊字符串,需要使用\来进行转义。

  3. new String()用来生成一个字符串对象。Var sobj = new String(“abc”);

  4. 字符串和字符串对象之间存在隐式转换。
    字符串转成整数 string -> int : parseInt()
    字符串转成数字 :Number()

数值型
  1. JavaScript种的数值都是64位浮点型

  2. New Number(123)

  3. NaN表示不是一个数。对NaN进行任何运算都是NaN。isNaN()函数用来判断,一个数是否是一个数。

布尔型、布尔类

遇 Null / undefined / 0 / “ ” (空字符串)转换成false ;
其余转换成true

Null型

Null代表变量没有引用任何对象。

Undefined型

Undefined型只代表变量还没有被赋值。

Var u;
Typeof u;//undefined
4 var & let
  1. java 中的变量是块级别的,{}内为一个块,块外不能调用块里;
    而JavaScript 中 var 声明的变量是函数级别的,里外浑然一体都可访问

  2. ES6 提供一个新的变量 let,let 声明的变量是块级别

二、函数

**闭包:**函数套函数
JavaScript中的函数与PHP中的函数很相似,但运行机制有些不同。JavaScript中的函数是一种对象,函数名的作用与变量名的作用一样,用于标识一个函数(变量是为了标识一个值)。

1 函数的声明与调用
function 函数名 (参数,参数,……){
       函数体
}
e.g.
Function sum(a,b){
       Return Number(a) + Number(b);
}
Sum():

其实这是声明一个函数,并把这个函数赋值变量sum。我们可以这样:

var sum3 = sum;
sum3(1,2);
2 匿名函数
  1. 匿名函数是没有名称的函数
  2. 匿名函数是一个表达式,而不是一种语句,因此,匿名函数也可以在表达式中使用,且会有返回值,匿名函数的返回值是一个Function 对象的引用。
Function(参数,参数,……){
       函数体
}
e.g.
var sum2 = function(a,b){
       return Number(a)  + Number(b);
}
sum2();

三、对象

JavaScript对象可以定义为属性的集合
表面上看JavaScript对象非常像PHP的关联数组,但JavaScript对象还有着PHP索引数组没有的特点:

  1. JavaScript的属性值可以由函数来指定。
  2. JavaScript具备拥有一种基于原型链的构造方法。

通过对象字面量表达式生成一个对象:

{
	属性名:属性值,
	属性名:属性值,
	......
}

例子:

{x:1,y:2}
{
	x:1,
	y:2,
	color:{
			r:3,
			g:4,
			b:5
		}
}

访问对象属性

  1. 可以通过点号(.)和方括号([])的方式去访问一个对象的属性。
  2. []中可以放变量,而.不能使用变量来取值
1 定义对象两种方法
  1. 数据定义在构造函数中,方法(函数)定义在原型上,为了不浪费空间
    (prototype 相当于 java 中的object ,所有对象继承于prototype)
    //声明方法和构造函数等,用对象的时候通过构造函数 new 出对象
    function Person(age,time){
    	this.age = age;
    	this.time = time;
    }
    Person.prototype.show = function(){
    	console.info("My name is "+ this.name);
    }
    
  2. 直接定义对象,此对象可直接拿来用
    var obj = {
    	name:"zhangsan",
    	age:20,
    	show:function(){
    		console.info(this.name);
    	}
    }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值