数据的类型转换

之前提到过,js中数据类型分两种,

  基本数据类型string  number   boolean  undefined  null

  复杂数据类型 对象   Date   Array  function

  而在实际编程中,经常会与到数据类型转换的问题,比如把字符串类型的数据转化成数字类型的,又或者是把数字类型的转化成布尔类型的,那js中到底怎么实现数据类型的转换呢?

转成number

  隐式转换  +    -   *    /   %  ;值得注意的是,+在这里是用做正负的作用,而且是放在要转换的值得前面的。

  强制转换  使用外部的方法或是函数进行的数据转换

  Number()    parseInt()     parseFloat()

  var a = "123";
  var b = true;
  console.log(Number(a)); // 123
  console.log(Number(true)); // 1
  console.log(Number(null)); // 0
  console.log(Number(undefined)); // NaN
  console.log(Number("123.456")); // 123.456
  console.log(Number(" ")); //0

  boolean类型的值转换成Number类型true-->1    false-->0;

  unerfined-----> NaN;

  如果能将值转换成数字,就转换成对应的值,如果不能转换,则报NaN.

  Number()函数的特点:

  a.如果转换的内容可以转成数字,那么就直接返回这个内容对应的数字。

  b.将整体进行转换,如果有一个不可以转换那么返回NaN.

  c.如果在内容中出现小数,那么小数会保留,也会输出小数。

  d.如果内容为空(null),那么转换成0;

转成string类型:

  隐式类型转换:+“”

  强制类型  toString()    String();

  万物皆对象,JS中的对象几乎都有toString();null,undefined是没有toString()方法,如果要强制转换的话,只能使用String();能用toString()转换的对象,对string()都可以。

转boolean类型

  隐式类型       !!

  强制类型       Boolean()

  数据类型转boolean的时候,为false的情况:

  0, “”,null,undefined,NaN, 这些转成boolean类型的时候都为false,其它的都为true;

函数:

  函数:其实就是一段代码,一段可以在使用的时候执行,可以重复使用的代码块。它把可以重用的东西提取成函数,把不可重用的东西当成参数传入函数。

函数的定义:

function 函数名(参数){

  函数体(都是可执行的或是要执行的代码);

}

  函数有三要素:函数名(函数的功能),参数,返回值。

  首先来讲讲函数名,因为js对大小写是很敏感的,所以在命名函数和调用函数的时候大小写都要一直,否则的话就不能调用函数了。然后就是参数,也就是我们提供给函数的数据,函数中的参数可以是任意多个,也可以不写参数,如果有两个及以上参数的时候,参数与参数之间用半角的英文逗号隔开。最后,就是函数的返回值。每个函数都是有返回值的,如果在函数中没有明确的返回值的话,那么函数就会返回underfined。

  函数调用的时候一般都用函数名加括号的形式来调用。函数名();

  在函数中,还有形参跟实参的区别,形参就是在函数定义的时候,所传入的参数,主要就是为了起占位置的作用。而实参则是函数在调用的时候所传入的参数值。定义好了函数之后,在函数调用的时候,会将函数的实参复制一份传到函数定义时的形参里面,会和之前的一一对应起来,如果实参和形参的个不一样的时候,会先按之前的分配,也就是匹配形参中的前面几个。所以实参和形参的个数是可以不一样的。

  关于函数,还有些不得不提的就是他的作用域的问题。js编程环境的顶级作用域是window对象下的范围,称为全局作用域,全局作用域中的变量称为全局变量。而js函数内的变量无法在函数外面访问,在函数内却可以访问函数外的变量,函数内的变量称为局部变量。

JS入门(三)的更多相关文章

  1. 1. web前端开发分享-css,js入门篇

    关注前端这么多年,没有大的成就,就入门期间积累了不少技巧与心得,跟大家分享一下,不一定都适合每个人,毕竟人与人的教育背景与成长环境心理活动都有差别,但就别人的心得再结合自己的特点,然后探索适合自己的学 ...

  2. React.js入门笔记

    # React.js入门笔记 核心提示 这是本人学习react.js的第一篇入门笔记,估计也会是该系列涵盖内容最多的笔记,主要内容来自英文官方文档的快速上手部分和阮一峰博客教程.当然,还有我自己尝试的 ...

  3. Ember.js入门教程、博文汇总

    第一章 对象模型 Ember.js 入门指南——类的定义.初始化.继承 Ember.js 入门指南——类的扩展(reopen) Ember.js 入门指南——计算属性(compute properti ...

  4. web前端开发分享-css,js入门篇(转)

    转自:http://www.cnblogs.com/jikey/p/3600308.html 关注前端这么多年,没有大的成就,就入门期间积累了不少技巧与心得,跟大家分享一下,不一定都适合每个人,毕竟人 ...

  5. Node.js入门实例程序

    在使用Node.js创建实际“Hello, World!”应用程序之前,让我们看看Node.js的应用程序的部分.Node.js应用程序由以下三个重要组成部分: 导入需要模块: 我们使用require ...

  6. 前端总结·基础篇·JS(三)arguments、callee、call、apply、bind及函数封装和构造函数

    前端总结系列 前端总结·基础篇·CSS(一)布局 前端总结·基础篇·CSS(二)视觉 前端总结·基础篇·CSS(三)补充 前端总结·基础篇·JS(一)原型.原型链.构造函数和字符串(String) 前 ...

  7. 3.Python爬虫入门三之Urllib和Urllib2库的基本使用

    1.分分钟扒一个网页下来 怎样扒网页呢?其实就是根据URL来获取它的网页信息,虽然我们在浏览器中看到的是一幅幅优美的画面,但是其实是由浏览器解释才呈现出来的,实质它是一段HTML代码,加 JS.CSS ...

  8. web前端开发分享-css,js入门篇

    学习没有捷径,但学习是有技巧与方法.   一,css入门篇:   推荐书籍:css哪些事儿,精通css. 理由:css那些事儿,他是一本介绍css基础类的书,是入门的经典读物. 系统的介绍了css的选 ...

  9. Vue.js入门(一)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <meta htt ...

  10. 转 Python爬虫入门三之Urllib库的基本使用

    静觅 » Python爬虫入门三之Urllib库的基本使用 1.分分钟扒一个网页下来 怎样扒网页呢?其实就是根据URL来获取它的网页信息,虽然我们在浏览器中看到的是一幅幅优美的画面,但是其实是由浏览器 ...

随机推荐

  1. 我用Cocos2d-x模拟《Love Live!学院偶像祭》的Live场景(三)

    [前言和思路整理] 千呼万唤Shi出来啊(好像也没人呼唤),最近公司项目紧,闲暇时间少更得慢,请见谅. 上一章我们分析并实现了打击物件类BeatObject,和它的父节点BeatObjectColum ...

  2. 使用XML布局文件和Java代码混合控制UI界面

    完全使用Java代码来控制UI界面不仅烦琐.而且不利于解耦:而完全利用XML布局文件来控制UI界面虽然方便.便捷,但难免有失灵活.因此有些时候,可能需要混合使用XML布局文件和代码来控制UI界面. 当 ...

  3. JavaScript 44 Puzzlers

    http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651550987&idx=1&sn=f7a84b59de14d0b ...

  4. JavaScript 模拟装饰者模式

    /** * 抽象coffee父类,其实可以不用的 */ function Coffee () {} Coffee.prototype.cost = function() { throw '实现这个方法 ...

  5. java调用webservice

    http://www.cnblogs.com/sun_moon_earth/archive/2009/02/03/1383308.html http://www.cnblogs.com/siqi/ar ...

  6. 基于Ubuntu 14.04构建mysql5.6 Docker镜像

    我们的目的是创建一个基于Ubuntu 14.04 的MySQL的 Docker Image,并且在新创建出来的容器里自动启动MySQL服务接受外部连接 步骤: 1. 首先创建一个目录并在目录下创建一个 ...

  7. Raft 实现日志复制同步

    Raft 实现日志复制同步 本篇文章以 John Ousterhout(斯坦福大学教授) 和 Diego Ongaro(斯坦福大学获得博士学位,Raft算法发明人) 在 Youtube 上的讲解视频及 ...

  8. 有关C#分部类型的一些叙述

    等待着元宵节的到来,过完元宵,这个年也算是过完了,也得开始出去挣钱了,过年回家感觉每个人都觉得很牛,只有自己太渣,为了避免年底再出现这样尴尬的局面,还是需要努力干活.争取当上CEO,赢取白富美,走上人 ...

  9. 日月如梭,玩转JavaScript日期

    一.Date对象 下面出现的源码都可以codepen在线查看. 1)时间戳毫秒计算 Date对象是基于"1970-01-01 08:00:00"到指定日期的毫秒数,不是" ...

  10. 【死磕Java并发】-----Java内存模型之happend-before

    在上篇博客([死磕Java并发]-–深入分析volatile的实现原理)LZ提到过由于存在线程本地内存和主内存的原因,再加上重排序,会导致多线程环境下存在可见性的问题.那么我们正确使用同步.锁的情况下 ...