javascript中的函数、对象

1. 在javascript中,函数是被当成一种数据类型,它可以被存储在一个变量、数组、对象中,可以被当作参数传递到另一个函数中。

函数就像是字符串和数字这样的的数据类型,它可以是其它对象的一个属性

2. 函数定义的三种方式:

function square(x) {   return x*x;   }    //function 语句

var square = function(x) { return x*x;}  //函数直接量  function literal

var square = new Function("x", "return x*x;");  //  构造函数 不常用

3.javascript中的对象可以包含任何类型的属性,如数组、函数、其它对象等;

eg:       document.myform.button    //   the button property of an object that is itself stored in the myformproperty of an object named document

当一个函数为一个对象的属性时,它被叫做方法,属性名即为其方法名;

javascript中可以将对象当成是一种数组来操作(关联数组,associative arrays),这样就可以像数组访问其元素一样访问对象的属性了,如:

object.["propertyName"]

4.创建对象的几种方式

   //常规方式

 var o = new Object( );
 var now = new Date( );

创建完一个对象后,就可以使用或者是定义其属性了

var point = new Object( );
point.x = 2.3;   // 此处是定义其属性了是先把对象创建出来了再去定义它的属性

// 与java里面创建对象的方式很不一样,java里是先定义一个类,再根据那个类有什么构造函数创建一个对象
point.y = -1.2;

//对象直接量

var point = { x:2.3, y:-1.2 };   // 像这种方式创建对象并定义属性

// 嵌套

var rectangle = { upperLeft: { x: 2, y: 2 },
                  lowerRight: { x: 4, y: 4}
                };

var square = { "upperLeft": { x:point.x, y:point.y },
               'lowerRight': { x:(point.x + side), y:(point.y+side) }};

5.基本数据类型和引用类型的区别

基本类型:Numbers, boolean values, and the null and undefined   在内存中有固定的大小

引用类型:Objects, arrays, and functions   在内存中没有固定的大小

基本类型的变量指向的一个实际的数值,引用类型的变量指向的是一个引用一个地址(这点与java里的是一样的)

string类型比较特殊,其大小不确定,显然是不能以固定的大小存储,它并不是像引用类型那样也不像基本数据类型一样,它是不变类型(immutable)

到底什么是不变类型,还得深入学习。

strings behave like a primitive type in many ways.

In the end, it doesn't matter much whether you think of strings as an immutable reference type that behaves like a primitive type or as a primitive type implemented with the internal efficiency of a reference type.

6.变量和属性

变量和属性在js中其实质是一样的

The Global Object:在客户端的javascript,Window 对象是所有运行在浏览器里的js代码的全局对象。可以用关键定this引用此对象,也可以用window这个属性引用。Window对象定义了一些核心的全局属性。

Local Variables: The Call Object  局部变量同样也是一个对象的属性,只不过其使用的范围比全局变量小,只能在一个方法里使用

js解释器在开始运行一个函数时都会为一个函数创建一个新的执行上下文,并不是运行在使用全局对象运行的那个上下文中。每一个js函数都在自己的上下文中执行,都有自己的局部变量。

javascript学习笔记------概念相关的更多相关文章

  1. Java程序猿的JavaScript学习笔记(汇总文件夹)

    最终完结了,历时半个月. 内容包含: JavaScript面向对象特性分析,JavaScript高手必经之路. jQuery源代码级解析. jQuery EasyUI源代码级解析. Java程序猿的J ...

  2. Java程序猿的JavaScript学习笔记(8——jQuery选择器)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...

  3. Java程序猿JavaScript学习笔记(2——复制和继承财产)

    计划和完成在这个例子中,音符的以下序列: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaSc ...

  4. Java程序猿的JavaScript学习笔记(3——this/call/apply)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...

  5. Java程序猿JavaScript学习笔记(4——关闭/getter/setter)

    计划和完成这个例子中,音符的顺序如下: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScr ...

  6. Java程序猿JavaScript学习笔记(14——扩大jQuery UI)

    计划和完成这个例子中,音符的顺序如下: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScr ...

  7. javascript学习笔记(四) Number 数字类型

    数字格式化方法toFixed().toExponential().toPrecision(),三个方法都四舍五入 toFixed() 方法指定小数位个数  toExponential() 方法 用科学 ...

  8. JavaScript学习笔记之数组(二)

    JavaScript学习笔记之数组(二) 1.['1','2','3'].map(parseInt) 输出什么,为什么? ['1','2','3'].map(parseInt)//[1,NaN,NaN ...

  9. JavaScript学习笔记[0]

    JavaScript学习笔记[0] 使用的是廖雪峰JavaScript教程. 数据类型 Number 表示数字,不区分浮点整形. === 比较时不转化数据类型. == 反之. NaN与任何值都不想等, ...

随机推荐

  1. 使用minikube在windows构建kubernetes群集

    只建议在开发环境中使用,不建议在windows下使用docker或者kubernetes. 1. 安装VirtualBox或者Hyper-v(安装步骤略) 2. 下载kubectl和minikube工 ...

  2. zookeeper分布式算法和部署

    算法摘要 安装 配置 监控 创建节点 二阶段提交(Two-Phase Commit) 投票和执行 协调者向参与者发送事务内容,询问是否可以提交,各参与者节点执行事务并向协调者反馈 如果所有参与者反馈y ...

  3. PBR Step by Step( 五)Phong反射模型

    Lamertian模型描述了当光源直接照射到粗糙物体表面时,反射光线的分布情况.在现实中,除了直接光照,还有来自周围环境的间接光照. 直接照射到物体表面的光照,又称为局部光照: 间接照射到物体表面的光 ...

  4. iOS 9音频应用播放音频之iOS 9音频播放进度

    iOS 9音频应用播放音频之iOS 9音频播放进度 iOS 9音频应用开发播放进度 音频文件在播放后经过了多久以及还有多久才可以播放完毕,想必是用户所关注的问题.为了解决这一问题,在很多的音乐播放器中 ...

  5. 深入理解javascript作用域系列第二篇

    前面的话 大多数时候,我们对作用域产生混乱的主要原因是分不清楚应该按照函数位置的嵌套顺序,还是按照函数的调用顺序进行变量查找.再加上this机制的干扰,使得变量查找极易出错.这实际上是由两种作用域工作 ...

  6. bzoj 2809: [Apio2012]dispatching -- 可并堆

    2809: [Apio2012]dispatching Time Limit: 10 Sec  Memory Limit: 128 MB Description 在一个忍者的帮派里,一些忍者们被选中派 ...

  7. 05-树6. Path in a Heap (25) 小根堆

    05-树6. Path in a Heap (25) Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://www.patest.cn/contes ...

  8. PAT甲级1057. Stack

    PAT甲级1057. Stack 题意: 堆栈是最基础的数据结构之一,它基于"先进先出"(LIFO)的原理.基本操作包括Push(将元素插入顶部位置)和Pop(删除顶部元素).现在 ...

  9. activemq消息重发机制[转]

    大家知道,JMS规范中,Message消息头接口中有setJMSRedelivered(boolean redelivered)和getJMSRedelivered()方法,用于设置和获取消息的重发标 ...

  10. Inverted bipolar transistor doubles as a signal clamp

    A number of circuits, such as level detectors and AM demodulators, benefit from a rectifier with a l ...