《javascript高级编程》读书笔记(两)javascript基本概念

《javascript高级编程》读书笔记(两)javascript基本概念

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

第三章:基本概念

ECMAScript那里5种简单数据类型(也称基本数据类型):Undefined\Null\Boolean\Number\String,另一种复杂数据类型——Object,Object本质上是由一组无序的名值对组成的。

typeof是一个操作符而不是函数.

Undefined类型:此类型仅仅有一个值,undefined.在使用var声明变量但未对其初始化时。这个变量的值就是undefined.

var message

var message2 = undefined;

alert(message);                   //  ”undefined”

alert(message == undefined);       //  true

alert(typeof message);            //  ”undefined”

alert(message == undefined);       //  true

alert(age);                     //   产生错误

alert(typeof age);               //  ”undefined”

 

Null类型:此类型仅仅有一个值,null.表示一个空对象指针。

var car = null;    

alerttypeof car;        //     ”object”

if(car != null){

   //car对象运行操作

}

undefined值是派生自null值的。

alert(null == undefined);      //true

仅仅要意在保存对象的变量还没有真正保存对象,就应该明白地让该对象保存null值。

Number类型:

  八进制的第一位是0,十六进制的前两位是0x.

  科学计数法:e

ECMAScript所能表示的最小和最大的值各自是:Number.MIN_VALUENumber.MAX_VALUE,超出范围。会被成Infinity值(即Number.POSITIVE_INFINITY)或者Infinity(即Number.NEGATIVE_INFINITY.

NaNNot a Number

1. 不论什么涉及到NaNde 操作都会返回NaN.

2. NaN与不论什么值都不相等,包含NaN本身

 alert NaN == NaN ;    //  false

 IsNaN()在接受到一个值之后,会尝试将这个值转换为数值。

alert(isNaN(NaN));              //true

alert(isNaN(10));              //false

alert(isNaN(“10”));              //false

alert(isNaN(“blue”));              //true

alert(isNaN(true));              //false(能够被转换成1)

isNaN也适用于对象,会先调用对象的valueOf()方法,假设不能转换为数值。再基于返回值调用toString()方法。

数值转换:

能够将非数值转换成数值的函数:

1. Number()   用于不论什么数据类型,不解析八进制

var str ;

var str2 = null;

var str3 = “hello world”;

Number(str);        //NaN

Number(str2);       //0

Number(str3);       //NaN

Number(“”);        //0

Number(“000011”);  //11

Number(true);      //1

Number(“0xA”);     //10

一元加操作符的操作与Number()同样。

2. parseInt()  用于字符串类型(忽略前面的空格),可解析八进制

parseInt(“   1234blue”);         // 1234

parseInt(“”);                   // NaN

parseInt(“0xa”);                // 10

parseInt(22.5);                 //22

parseInt(“70”,8);               //56  (指定基数。即8进制)

parseInt(“10”,2);             // 2

3. parseFloat()  用于字符串类型(忽略前面的空格),仅仅解析10进制

parseFloat(“1234blue”);                //1234

parseFloat(“0xA”);                    //0

parseFloat(“22.34.5”);                 //22.34

parseFloat(“0908.5”);                 //908.5

parseFloat(“3.125e7”);                //31250000

String类型:能够用双引號。也能够用单引號表示。

 除了nullundefined值没有toString(),其它都有。可是nullundefined能够调用String(),返回对应的字符串。即null值返回“null”,undefined值返回“undefined”

 toString()能够传入基数參数,表示输出的进制表示。如:

  var num = 10;

  number.toString(2);   // “1010”

  要把某个值转换为字符串,能够使用加号操作符把它与一个空字符串(””)加在一起。

with语句:

 with语句的作用是将代码的作用域设置到一个特定对象中。目的是简化多次编写同一个对象的工作。样例见···

可是大量使用with语句会导致性能下降,同一时候也会给调试代码造成困难。因此在开发大型应用程序时,不建议使用with语句。

switch语句:

switch语句在比較值时使用的是全等操作符。因此不会发生类型转换(比如。字符串“10”不等于数值10.

函数的返回值:

 除了return语句外。没有不论什么声明表示该函数返回一个值。

另外。return语句也能够不带不论什么返回值,此时,函数在停止运行后将返回undefined

ECMAScript的函数參数:重点

命名的參数仅仅提供便利,但不是必须的。解析器不会验证命名參数。

ECMAScript中的參数在内部是一个数组来表示的。能够通过arguments对象来訪问这个參数数组,从而訪问每个參数。

改动arguments对象中的值会自己主动反映到相应的命名參数。可是改动命名參数不会改变arguments相应的值。

没有传递值得命名參数将自己主动被赋予undefined值。

ECMAScript中的全部參数传递的都是值,不可能通过引用传递參数。

ECMAScript功能不能超载,您可以覆盖。

版权声明:本文博主原创文章。博客,未经同意不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117061.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • c#窗体怎么居中_窗口居中

    c#窗体怎么居中_窗口居中窗体始终居桌面中央显示,需要考虑以下两个方面:(1).窗体距离桌面左部边缘与桌面的宽度以及自身宽度的判断;(2).窗体距离桌面上边缘与桌面的高度以及自身高度的判断下面用代码一一实现,当然这都是在窗体加载时完成this.Left=Screen.PrimaryScreen.Bounds.Width/2-this.Width/2;//桌面的宽度的一半减去自身宽的的一半this…….

    2022年9月9日
    0
  • 基于UDP编程_udp详解

    基于UDP编程_udp详解基于UDP编程1UDP是数据报协议,无连接的,不可靠,追求传输效率的一种通信协议数据的发送和接收是同步的.在进行通信之前,不需要建立连接.其传输效率比TCP高.对其服务器而言,并没有三次握手的过程.因此和TCP相比,少了被动监听(listen)和(accept).只需要创建通信设备,绑定IP地址和端口号.然后进行数据的收发.1.服务器端的编程模型创建一个socket端点,返回该端点的文件描述符fdsocket(2)2)将fd和本地地址绑定bind(2)while(1){3)阻塞等待

    2022年9月4日
    2
  • 群晖Virtual Machine Manager虚拟机安装OpenWrt软路由作为旁路由的详细步骤

    群晖Virtual Machine Manager虚拟机安装OpenWrt软路由作为旁路由的详细步骤0.前言:本来一直都是在Windows10的Hyper-V中虚拟软路由的,直到有一天突发奇想,手贱在windows10宿主机中安装了个安卓模拟器,由于众所周知的原因,安卓模拟器是不能同时与Hyper-V虚拟机共存的,虽然我在安装后运行安卓模拟器的时候没有去点击那个关闭Hyper-V的提示按钮,并且迅速点击了退出按钮,但是悲剧还是发生了,我的Windows10宿主机在重启后自动关闭了Hyper-V功能,导致我在其中安装的openwrt旁路由、centos测试环境都熄火了!然后就是赶紧在【程序】中添加【Hy

    2022年6月1日
    137
  • rsyslogd -n_Syslog

    rsyslogd -n_Syslogimjournal模块提供将结构化日志消息从systemd日志导入syslog的功能。默认配置:module(load=”imjournal”#providesaccesstothesystemdjournalStateFile=”imjournal.state”)#Filetostorethepositioninthejournal有时需要禁止限速:module(load=”imjournal”Ratelimit.Interv

    2022年8月15日
    1
  • vc 获取月份的天数_根据距离1900年1月1日的天数(0起始),计算这一天的日期(年,月,日)…

    vc 获取月份的天数_根据距离1900年1月1日的天数(0起始),计算这一天的日期(年,月,日)…我的代码,算法不优美,但结果正确^_^#include#include#includevoidfoo(int&year,int&month,int&day){year=1900;month=1;day+=0;for(intn;n=(((year%4==0&&year%100!=0)||(year%400==0))…

    2022年8月12日
    4
  • xp的终极优化

    xp的终极优化总体设想:让WinXP更苗条、性感、速度更快,使用更便捷。为了达到这个目的,我们主要从四个方面入手:1、减少磁盘空间占用2、终止不常用的系统服务3、安全问题4、另外一些技巧首先问一下,你是不是很想激活XP,不。。。准确的说你是不是想在ms的站上能够升级。如果答案是肯定的话,那我们就先来探讨一下安装的问题,目前流行的V4、V5、V6版本我还是比较推荐的,尤其是V5和V6这两个。安装的过程中有个序

    2022年10月7日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号