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. 使用Unity解耦你的系统—PART4——Unity&PIAB

    在前面几篇有关Unity学习的文章中,我对Unity的一些常用功能进行介绍,包括:Unity的基本知识.管理对象之间的关系.生命周期.依赖注入等,今天则是要介绍Unity的另外一个重要功能——拦截(I ...

  2. ThinkPHP3.2.3 PHPExcel读取excel插入数据库

    版本 ThinkPHP3.2.3 下载PHPExcel 将这两个文件放到并更改名字 excel文件: 数据库表: CREATE TABLE `sh_name` ( `name` varchar(255 ...

  3. CodeForces 803F Coprime Subsequences

    $dp$. 记$dp[i]$表示$gcd$为$i$的倍数的子序列的方案数.然后倒着推一遍减去倍数的方案数就可以得到想要的答案了. #include <iostream> #include ...

  4. 外行人都能看懂的SpringCloud

    一.前言 只有光头才能变强 认识我的朋友可能都知道我这阵子去实习啦,去的公司说是用SpringCloud(但我觉得使用的力度并不大啊~~)... 所以,这篇主要来讲讲SpringCloud的一些基础的 ...

  5. 【BZOJ 1398】 1398: Vijos1382寻找主人 Necklace (最小表示法)

    1398: Vijos1382寻找主人 Necklace Time Limit: 5 Sec  Memory Limit: 128 MBSubmit: 308  Solved: 129 Descrip ...

  6. 2017haoi总结

    暴力都写不对的蒟蒻QAQ 现在只看了上午的第二题..   AM.T2 写了40分的记忆化搜索,最差复杂度大概是n^3,100以下应该是稳过的..通过递归返回[l+1,r]的答案,l=r特判,int函数 ...

  7. Educational Codeforces Round 43 (Rated for Div. 2) ABCDE

    A. Minimum Binary Number time limit per test 1 second memory limit per test 256 megabytes input stan ...

  8. []APC001

    题目质量都好高啊... A:求一个是$X$的倍数但不是$Y$的倍数的数,无解输出$-1$ 无解就是$Y|X$,否则输出$X$即可 B:给定$a_{1\cdots n},b_{1\cdots n}$,求 ...

  9. ACM -- 算法小结(七)Phone list解题报告

          HDOJ -- Phone list解题报告 问题描述:给出一些电话号码,如果有共同前缀则输出NO,如果没有则输出YES. 解题关键:将电话号码进行字符串排序,相邻的电话号码进行比较 Sa ...

  10. Redis-环境搭建、创建服务、搭建主从复制-Windows版本

    一.搭建Redis环境 1.链接:http://pan.baidu.com/s/1boKAzzL 密码:sh2r 2.不赘述:执行redis-server.再执行redis-cli即可.redis环境 ...