js积累

原创 2018年04月16日 10:29:26

在js中六大数据类型 

在js中有六种数据类型:五种基本类型(String,Number,Null,Undefined,Boolean),一种复杂数据类型Object

由于js中的变量是松散类型的,所以它提供了一种检测当前变量的数据类型的方法,也就是typeof关键字.

typeof   123   //Number

typeof   'abc'  //String

typeof    true       //Boolean

typeof    undefined   //Undefined

typeof    null        //Object

typeof    { }           //Object

typeof    [ ]           //Object

typeof    console.log()       //Function

1.Number类型

Number类型包含整数和浮点数(浮点数数值必须包含一个小数点,且小数点后面至少有一位数字)两种值。

NaN:非数字类型。特点:① 涉及到的 任何关于NaN的操作,都会返回NaN   ② NaN不等于自身。

isNaN() 函数用于检查其参数是否是非数字值。

isNaN(123)  //false   isNaN("hello")  //true

2.String类型

字符串有length属性。

字符串转换:转型函数String(),适用于任何数据类型(null,undefined 转换后为null和undefined);toString()方法(null,defined没有toString()方法)。

3.Boolean类型

该类型只有两个值,true和false

4.Undefined类型

只有一个值,即undefined值。使用var声明了变量,但未给变量初始化值,那么这个变量的值就是undefined。

5.Null类型

null类型被看做空对象指针,前文说到null类型也是空的对象引用。

6.Object类型

js中对象是一组属性与方法的集合。这里就要说到引用类型了,引用类型是一种数据结构,用于将数据和功能组织在一起。引用类型有时候也被称为对象定义,因为它们描述的是一类对象所具有的属性和方法。

三大引用类型

1.Object类型

我们看到的大多数类型值都是Object类型的实例,创建Object实例的方式有两种。

第一种是使用new操作符后跟Object构造函数,如下所示

var person = new Object();

person.name = "Micheal";

person.age = 24;

第二种方式是使用对象字面量表示法,如下所示

var person = {

  name : "Micheal",

  age : 24

};

2.Array类型

数组的每一项可以用来保存任何类型的数据,也就是说,可以用数组的第一个位置来保存字符串,第二个位置保存数值,第三个位置保存对象....另外,数组的大小是可以动态调整的。

创建数组的基本方式有两种

第一种是使用Array构造函数,如下所示

var colors = new Array("red","blue","yellow");

第二种是使用数组字面量表示法,如下所示

var colors = ["red","blue","yellow"];

3 Function类型

每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法。函数通常是使用函数声明语法定义的,如下所示

function sum(num1,num2){

  return num1 + num2;

};

这和使用函数表达式定义函数的方式相差无几。

var sun = function (){

  return sum1 + sum2;

};

也就是说,js按照存储方式分为值类型和引用类型。那么他们的计算有什么区别呢?

题目1: var a = 100;

    var b = a;

      a = 200;

    console.log (b);

题目2: var a = {age : 20};

    var b = a;

    b.age = 21;

    console.log (a.age);

题目1的答案是 100,题目2的答案是21,

题目1是简单的值类型,在从一个变量向另一个变量赋值基本类型时,会在该变量上创建一个新值,然后再把该值复制到为新变量分配的位置上。

此时,a中保存的值为 100 ,当使用 a 来初始化 b 时,b 中保存的值也为100,但b中的100与a中的是完全独立的,该值只是a中的值的一个副本,此后,
这两个变量可以参加任何操作而相互不受影响。也就是说基本类型在赋值操作后,两个变量是相互不受影响的。

题目2是引用类型,当从一个变量向另一个变量赋值引用类型的值时,同样也会将存储在变量中的对象的值复制一份放到为新变量分配的空间中。

这时保存在变量中的是对象在堆内存中的地址,所以,与简单赋值不同,这个值的副本实际上是一个指针,而这个指针指向存储在堆内存的一个对象。那么赋值操作后,
两个变量都保存了同一个对象地址,则这两个变量指向了同一个对象。因此,改变其中任何一个变量,都会相互影响。

因此,引用类型的赋值其实是对象保存在栈区地址指针的赋值,因此两个变量指向同一个对象,任何的操作都会相互影响。

------------------------------------------ .find

jq中$(".").find('span')遍历抓取元元素中span标签


常用js 片段

1:点击超链接 同样选中checkbox
  • kalision
  • kalision
  • 2014-08-24 19:49:22
  • 977

怎样在工作中积累自己的资源!?

从业十多年,打交道的客户都比较认可我这个人,但是由于从事行业的原因,很多是人走茶凉,基本都不怎么联系了。现在静下来反思,其实也有自己的原因,一方面太过专注于工作,对客户在生活其他方面的交流较少,大家除...
  • xiaoniqiu
  • xiaoniqiu
  • 2015-07-12 23:16:37
  • 408

积累是一种最简单的学习方法

虽然说每时每刻,大家都在积累经验,但有效性还是值得怀疑,因为很多时候我们回过头来发现并没有多少进步;在工作和学习的过程中,我发现积累其实是我们很容易忽视的地方,一个函数,一个类,一个小功能的积累,时间...
  • hawksoft
  • hawksoft
  • 2015-06-29 07:19:55
  • 1771

js积累(以及.net中常用的js)

  • 2007年08月15日 14:20
  • 56KB
  • 下载

在工作中积累经验

来到ibm2个月啦,多多少少感受到了一些东西。从不熟悉到熟悉,从茫然到清晰。有很多感受现在已经慢慢的淡去。但现在想作下来写点东西,因为我已经老啦,也许记下来才能真正的理解。理解了也许会用上。不知道自己...
  • hdwt
  • hdwt
  • 2007-03-13 12:52:00
  • 1863

离职,我来说!行业积累和技术积累

最近公司里面好像离职的人好像比较多,可能是春天的缘故大家都有那么一点点萌动,本来这个时候就是跳槽高峰,招聘也是比比皆是。想想自己,去年的这个时候,也产生了跳槽的萌动,那时候自己抱着两个想法,当前的工作...
  • annicybc
  • annicybc
  • 2007-03-23 13:20:00
  • 7193

程序员如何积累编程技术或编程经验?

工作中总是被问到程序员如何积累编程技术或编程经验?首先我认为编程是一门实践性的很强的艺术,所以貌似唯有实践才能积累。然而把它当作一个个人软件过程(PSP)的问题,总感觉是有一些规律、规则或建议可以解答...
  • liulihuo_gyh
  • liulihuo_gyh
  • 2015-11-08 20:25:46
  • 824

原始粉丝积累秘籍【学员必看】

干货教程,请每位学员务必用心学习并认真操作。这篇帖子,希望每位学员都认真多看几遍,然后认真执行操作。因为此套方法是经过多位导师及学员共同总结和测试出来的,操作方法并不难,也许你看的时候觉得没有多大技术...
  • newhappy2008
  • newhappy2008
  • 2016-12-06 16:49:17
  • 557

平时积累的重要性

为什么要积累?大话扯多了没有意思, 说说小话吧。 晚上11点的时候, 同事反馈一个问题, 外网有几个用户投诉了, 要赶紧看看。         看了一下, 是个概率行问题。 根据现有流水和log, 有...
  • stpeace
  • stpeace
  • 2016-10-31 07:41:22
  • 2755

程序员思路转变-从积累代码量到积累编程思路

程序员思路转变-从积累代码量到积累编程思路  在外培训已经接近尾声了,但是心里却越发着急。代码敲了不少,有时一段代码片段敲了五遍,但感觉还没有刚开始学习时敲一遍有感觉。怎样的感觉呢?问我会吗...
  • u011616739
  • u011616739
  • 2017-06-21 00:45:00
  • 431
收藏助手
不良信息举报
您举报文章:js积累
举报原因:
原因补充:

(最多只允许输入30个字)