JavaScript学习笔记(一)—— 数据类型

一、基本数据类型:
1、js中基本数据类型:String、Boolean、Number、Null、undefined;
复合数据类型:object对象类型、Array数组类型
特殊对象:function函数类型

基本数据类型
① String  —字符串。
    若使用var声明变量,var x = “Andy” ,x 为字符串。将一个值转换成字符串:toString( )方法
 
② Boolean—布尔值。
    只有两个值:true或者false; 但true不一定等于1,false也不一定等于0;
    要将一个值转换为其对应的Boolean值,可以调用类型转换函数Boolean( )
 
③ Number —整数、浮点数、NaN.
    其中:任何数值除以0会返回NaN,而NaN除以任何数值也返回NaN;
    isNaN( )函数可以确定一个参数是否 “不是数值”。
    例如:alert(isNaN(“Andy”))// “Andy”不是数值,返回true;
            alert(isNaN(25))//25是数值,返回false;
            alert(isNaN(NaN ))//返回true;
ps:   Number()函数的转换规则:
       字符串:可用parseIn( )和parseFloat( )来转换成数值。
       Boolean值:true和false将分别替换为1和0
       null值:返回0
       undefined:返回NaN;
       对象:可调用valueOf( )方法,toString()方法
 
④ Null— 空。
    如果定义的变量在未来用于保存对象,最好将变量初始化为null;
    例:var a = null;
 
⑤ undefined—一个值:undefined。
    使用var声明变量但未对其加以初始化时,这个变量的值就是undefined。
    例:var a;
         alert(a);//undefined
 
PS:① null与undefined的区别:
         undefined没有必要显示设置值,即变量不含有值;
         null需要被初始化,用于、保存清空变量
     ②布尔值、数值、对象、字符串都有toString( )方法,null和undefined没有此方法。
 
复合数据类型
① object类型— 例:var a = new object( )
                     属性和方法:
                     constructor( )—保存着用于创建当前对象的函数
                     hasOwnProperty( )—检查该属性是否在当前对象实例中,是 返回 true;若在原型中则返回 false
                     isPropertyOf( )—检查传入的对象是否是另一个对象的原型
                     propertyIsEnumberable( )—检查给定的属性是否能够使用for-in语句来枚举
                     toString( )—对象转换为字符串表示
                     valueOf( )—对象转换为字符串、布尔值、数值表示
② Array类型—  例:var a = new Array();
                            a[0] = "123";
                            a[1] = "456";
                            alert(a.length); //打印出 2

特殊对象
function函数类型 —  可写成 var test = function(){}或 function test(){};
                             函数没有重载,总是指向最后定义的function;
                             内部特殊对象:arguments:  
                                                                   ① callee 对函数对象本身的引用,用于匿名函数的递归
                                                                   ② caller 只有在函数执行时才有定义,functionName.caller
                                                          this:   
                                                                   全局环境中this指向window
                                                                   事件处理函数中this指向绑定事件的节点
                                                                   构造函数中this指向被创建的对象
                                                                   call()  
                                                                   apply()   
 
判断JS中的数据类型
typeof、instanceof、constructor、prototype方法
 
① typeof:
             例 var a = 123;
                 var b = function(){
                   this.name = "Andy";
              }
                alert(typeof a);// number
                alert(typeof b); //function
                alert(typeof a == "number" );//true
                alert(typeof b == "boolean");//false
 
② instanceof
(判断已知对象类型的方法,instanceof 后面一定是对象类型,区分大小写):
                 例  alert(a instanceof Array);//false
                      alert(b instanceof Function );//true
 
③ constructor
(根据对象的constructor判断):
                例  alert(a.constructor === Array);//false
                     alert(b.condtructor === Function);//true
 
④ prototype :
                例     alert(Object.prototype.toString.call(a)==="[object Number]");//true
                        alert(Object.prototype.toString.call(b)==="[object String]");  //false
扩展: 原文链接 http://www.xiabingbao.com/javascript/2015/07/04/javascript-type/
typeof方法:
          ①numberstringbooleanfunction, undefined可以被正确检测出;
                 ②null,array,json,date,reg,error 全部被检测为 object类型;
                 ③typeof 区分不出 json和array类型,输出都是 object;
instanceof 方法:
                 ①array、function、json、date、reg、error可以检测为true;
                 ②number、string、boolean、undefined、null检测为false;
                 ③null 和 undefined 检测不成object或其他类型
                 因此,要用instanceof 方法,首先判断 是否为null和undefined类型。
constructor 方法:
                          除了null和undefined ,其他类型均能使用constructor判断
                          但被判断的array必须在当前页面声明,例如对应子页面的Array 用父页面来判断,会返回false。
prototype 方法:
                       Object.prototype.toString.call(变量) 可以检测出所有类型;
                       例如 Object.prototype.toString.call(date); //返回[object Date]

jquery中$.type的实现

   检测出所有类型,和 Object.prototype.toString.call(date)方法很像,输出结果为prototype方法输出的第二个参数,即:

   $.type(num);  //number

   $.type(nul);  // null

转载于:https://www.cnblogs.com/emory/p/5008482.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/574147.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql分组失效_请教MySql中使用表子查询时,试着先排序后分组,出现排序失效的原因?...

1,今天试着码了一下教程里的题目,是找出每一个班级的身高最高的学生,用的是先order by降序排序所有学生升高,再用group by分组每一个班级取第一个值,却发现当使用子查询时,得到的仍旧是未排序时的结果,即没有取到最高身高,想问下为何使用子查询时,order by会失效,谢谢!↑这是建…

MySQL后初次密码_mysql第一次安装成功后初始化密码操作步骤

把文件解压到一个目录下这是解压后的目录将my.ini文件考进去双击打开my.ini找到这两行更改成自己的解压路径保存右键此电脑属性找到高级系统设置配置环境变量环境变量 新建 变量值是解压文件的路径Path 单击path编辑新建之后 用管理员身份打开cmd进入文件路径打开命令行窗口&am…

JQuery 操作 radio 被坑一例

.removeAttr(checked); .prop(checked,false); .prop(checked,true); 与 .attr("checked",true); .attr("checked",true); 有本质区别,上边的方法效果理想。转载于:https://www.cnblogs.com/rgqancy/p/5017357.html

mysql技术简介_mysql的简介和使用

mysql简介数据的所有存储,检索,管理和处理实际上是由数据库软件--DBMS(数据库管理系统)完成的mysql是一种DBMS,即它是一种数据库软件mysql工具mysql是一个客户机-服务器的DBMS。因此为了使用mysql,需要一个客户机,即提…

unity3d 随机物体生成器 工具

根据输入的物体生成随机成组的物体. 1 /// <summary>2 /// 本脚本可以由输入的预制 生成以本物体为中心的随机预制,支持预制打组3 /// 随机物体生成器(尤其试用于场景中静态物体随机摆放)4 /// </summary>5 using UnityEngine;6 using System.Collections;7 using …

mysql 大分页查询优化_Mysql骚操作:优化大分页查询

背景系统结构如上图。经过排查是因为系统B拉取数据时间太长导致的推送超时。系统B拉取数据的方法是根据_tiemstamp(数据操作时间)分页查询系统A的接口,即&#xff1a;1SELECT 字段名2FROM 表名3WHERE _timestamp > beginTime AND _timestamp < endTime 4LIMIT n, m;由于该…

python --动态类型

转自&#xff1a;http://www.cnblogs.com/vamei/archive/2012/07/10/2582795.html 动态类型(dynamic typing)是Python另一个重要的核心概念。我们之前说过&#xff0c;Python的变量(variable)不需要声明&#xff0c;而在赋值时&#xff0c;变量可以重新赋值为任意值。这些都与动…

mysql 判断等于空字符串_mysql 判断null 和 空字符串

1.在mysql中null 不能使用任何运算符与其他字段或者变量(函数、存储过程)进行运算。若使用运算数据就可能会有问题。2.对null 的判断&#xff1a;创建一个user表&#xff1a;id 主健 name 可以为空select * from user;insert into user values(33,null); ##创建一条name为空的…

JS组件系列——Bootstrap Table 表格行拖拽

JS组件系列——Bootstrap Table 表格行拖拽 原文:JS组件系列——Bootstrap Table 表格行拖拽前言&#xff1a;之前一直在研究DDD相关知识&#xff0c;好久没更新JS系列文章了。这两天做了一个简单的业务需求&#xff0c;觉得效果还可以&#xff0c;今天在这里分享给大家&#x…

mysql 值到99999后不增值了_MySQL必知必会3

创建和操纵表创建表输入CREATE TABLE customers(cust_id int NOT NULL AUTO_INCREMENT,cust_name char(50) NOT NULL ,cust_address char(50) NULL ,cust_city char(50) NULL ,cust_state char(5) NULL ,cust_zip char(10) NULL ,cust_country char(50) NULL ,cust_contact cha…

Linux install innotop

innotop是mysql监控工具 1&#xff0c;下载 weget http://nchc.dl.sourceforge.net/project/innotop/innotop/1.6.0/innotop-1.6.0.zip 2&#xff0c;安装依赖包 yum install perl-DBI perl-DBD-MySQL perl-TermReadKey perl -y 3,安装innotop perl Makefile.PL make make ins…

mysql udp服务器_netty学习:UDP服务器与Spring整合(2)

上一篇文章中&#xff0c;介绍了netty实现UDP服务器的栗子。本文将会对UDP服务器与spring boot整合起来&#xff0c;并使用RedisTemplate的操作类访问Redis和使用Spring DATA JPA链接MySQL数据库&#xff0c;其中会使用多线程、异步等知识。只公布了一个框架&#xff0c;需要的…

1-4 TCP/IP协议族

网络协议是在内核中实现的&#xff0c;socket是对tcp/ip协议的系统调用&#xff0c;提供以下两点功能&#xff1a; 1. 将应用撑血数据从用户缓冲区中复制到TCP/UDP内核发送缓冲区&#xff0c;以交付内核发送来的数据&#xff08;比如send&#xff09;&#xff0c;或者从内核TCP…

python将数据写入excel_【Python】将数据库中的数据查询出来自动写入excel文档

近期每天都要监控一个数据。第一个版本是这样的&#xff1a;每天新增一个文档来汇总这个数据。这样搞了几天之后&#xff0c;过了一个周末&#xff0c;过来突然发现数据变多了很多&#xff0c;这个时候要调整策略&#xff0c;直接一个文档汇总出要的数据就可以了。这样查了两天…

OC 继承

一、基本概念 程序的世界和人类的“对象”世界在思想上是没有设么区别的&#xff0c;富二代继承了父母&#xff0c;自然就拥有了父母拥有的所有资源&#xff0c;子类继承了父类同样就拥有了父类所有的方法和属性&#xff08;成员变量&#xff09;。 在这里动物是猫类和狗类的父…

吃西瓜 最大子矩阵 三维的。 rqnoj93

真的好苦逼&#xff0c;这道神题&#xff0c;交了几十次都是70分&#xff0c;剩下的都TLE了&#xff0c;崩溃。 没办法&#xff0c;只能这样了。在网上看了别人的算法&#xff0c;大概思想是把三维的先压成两维&#xff0c;再把二维的弄成一维&#xff0c;这样就很容易了。 首先…

mysql 两张表差集_mysql中两张表使用left join on 求差集详解

1.表结构mysql> select * from allStudents;-----------| id | name |-----------| 1 | ???? || 2 | ???? || 3 | ???| 4 | four |-----------4 rows in set (0.00 sec)mysql> select * from currentStudents;------------| id | name |------------| 1 | luo…

Android 高级UI设计笔记08:Android开发者常用的7款Android UI组件(转载)

Android开发是目前最热门的移动开发技术之一&#xff0c;随着开发者的不断努力和Android社区的进步&#xff0c;Android开发技术已经日趋成熟&#xff0c;当然&#xff0c;在Android开源社区中也涌现了很多不错的开源UI项目&#xff0c;它们可以帮助Android开发者更方便快捷地完…

centos linux怎么安装mysql_CentOS-Linux系统下安装MySQL

一、mysql的安装Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理&#xff0c;能够从指定的服务器自动下载RPM包并且安装&#xff0c;可以自动处理依赖性关系&#xff0c;并且一次安装所有依赖的软件包&…

Operating System-进程/线程内部通信-临界区(Critical Regions)

上一篇文章讲述了进程之间的竞争条件&#xff1a;多个进程同时进入一个共享区域&#xff0c;导致了数据的不一致&#xff0c;本文主要介绍如何解决这个问题。 一、临界区介绍 解决这个问题就是阻止多个进程同时进入这个共享区域&#xff0c;换句话说&#xff0c;进程之间针对这…