JavaScript基础篇详解

全部的数据类型:
  基本数据类型:
    undefined
    Number
    Boolean
    null
    String
  复杂数据类型:
    object

①Undefined:
>>>声明但未初始化的变量:typeof -> undefined
               aler -> undefined
   未声明变量:       typeof -> undefined
              alert -> 报错

②Null:
  >>>typeof值为null的变量返回object
  >>>undefined派生自null,undefined==null返回true;

③Boolean:
  >>>Boolean()函数:
    1.Boolean:ture false
    2.String:非空字符串都为真,空字符串为假
    3.Number:0为假,一切非0均为真
    4.null/NaN/undefined:全为假
    5.object:null为假,其他全为真

④Number:
>>>NaN:与任何值都不相等,包括NaN
>>>isNaN():
  1.纯数字字符串:false
  2.浮点型数字字符串:false
  3.包含字母等其他字符的字符串:true
  4.空字符串:false
  5.bool类型,false
  6.Null类型:false
  7.undefined:true

>>>Number():将其他类型转换为数值类型
  [字符串类型转数值]
  >>>字符串为纯数值字符串时,会转为对应的数值
  >>>字符串为空字符串时,会转为0 ""-> 0
  >>>字符串包含其它非数字字符时,不能转换"111a"->NaN
  >>>浮点型数字字符串,转为对应浮点数

  [Boolean转数值]
  true->1 false->0

  [null/undefined转数值]
  null ->0 undefined的变量 ->NaN

  [object类型转数值]
  会先调用valueOf函数确定函数是否有返回值,再根据上述情况转换返回值

>>>parseInt():将其他类型转为浮点数数值类型
    [将字符串转化为数值类型]
原理:   1.忽略空格找到第一个非空格字符,如果不是数字或者负号返回NaN,所以空字符串为NaN(Number()返回0)
    2.直到解析到结束,或遇到非数字字符(小数点是非数字字符)
    3.返回所有被解析成功的字符。
    >>>空字符串, 不能转:结果为NaN!!!
    >>>纯数字字符串 能转 "123" ->123
    >>>浮点型数字字符串:"123.5"->123
    >>>包含其他字符的字符串,会截取第一个非数值字符前的数字部分
        "123a456"->123
        "a123a456"->NaN
    >>>parseInt()只能转string和number类型,Boolean/null/undefined均为NaN
    >>>number类型的浮点型转为整数型,整数型不变

>>>parseFloat():
原理: 1.忽略空格找到第一个非空格字符,如果不是数字或者负号返回NaN,所以空字符串为NaN(Number()返回0)
    2.直到解析到结束,或遇到非数字字符(小数点是非数字字符)
    3.返回所有被解析成功的字符。
    [将字符串转为数值]
    >>>使用方式同parseInt(),但是,转化小数字符串时,保留小数点。
    [传进来的参数为number]
    >>>number类型,浮点型不变,整型返回整型。

⑤String:
  [将其他类型转为字符串方法]
  ①number,bool,object调用使用toString()方法;num.toString();
  ②null,undefined没有toString()方法,使用String()函数:String(value);
  ③让一个空字符串加此变量 -> ‘‘+value

⑥Object:

操作符:
  ①自增++,自减--操作符:
    >>>对于非数值操作数也是先使用Number()函数进行类型转换,在执行+1-1操作
    1.字符串:可转,转为数字,然后+1,字符串变量变为数值变量。
           不可转,将变量值设为NaN,字符串变量变为数值变量。
    2.布尔值:true -> 1 然后加减1
           false -> 0 然后加减1
    3.数值型:浮点型和整型直接加减1

  ②一元加、减操作符
    >>>在非数值前使用上述两个操作符,规则与Number()相同。
    >>>一元减操作符会将数值变为负

  ③布尔操作符:一共有三个 非 ! 与&& 或||
    >>>逻辑非:它应用于任何数据类型,返回值均为布尔类型。
           它首先将操作数转换为一个布尔值,然后求反。
      >>>规则如下:
        1.对象 -> false
        2.字符串:空字符串 -> true
              非空字符串 -> false
        3.数值 0 -> true
           非0数值 -> false
        4.null/NaN/undefined -> true
      >>>同时使用两个逻辑非操作符,等同于使用Boolean()

    >>>逻辑与:它可以应用于任何类型的操作数。
           当有一个操作数不是布尔类型,返回值不一定是布尔值。
      >>>规则如下:
        1.如果第一个操作数是对象,返回第二个操作数。
        2.如果第二个操作数是对象,只有在第一个操作数求值结果true的情况下,才会返回该对象。
        3.如果两个操作数都是对象,返回第二个操作数。
        4.如果有一个操作数是null/NaN/undefined,返回null/NaN/undefined.
      >>>逻辑与操作是短路操作:
        只要遇到结果为false的操作数,无论后面是什么,都将不在求值,直接返回false。

    >>>逻辑或:它可以应用于任何类型的操作数。
           当有一个操作数不是布尔类型,返回值不一定是布尔值。
      >>>规则如下:
        1.如果第一个操作数是对象,返回第一个操作数。
        2.如果第一个操作数的求值结果为false,返回第二个操作数。
        3.两个操作数都是对象,返回第一个操作数。
         4.如果两个操作数都是null/NaN/undefined,返回null/NaN/undefined.
      >>>逻辑与操作是短路操作:
        只要遇到结果为true的操作数,无论后面是什么,都将不在求值,直接返回true。

    typeof操作符:
      ①未定义->undefined
      ②字符串->string
      ③true/false->boolean
      ④数值->number
      ⑤函数->function
      ⑥对象/null->object
      >>>相比于数据类型,少了null,多了function
      >>>在ECMAScript中,函数是对象,不是一种数据类型。
        然而函数有一些特殊的属性,因此通过typeof操作符区分函数和对象还是有必要的。
      >>>对声明但未初始化和未声明的变量进行typeof操作结果都为undefined
         但是alert未初始化返回undefined
           alert未定义会报错。

时间: 2024-08-08 21:54:43

JavaScript基础篇详解的相关文章

重温JSP/Servlet技术之Jsp基础篇(详解二)

cookie 今天就讲cookie,因为在课堂上我没有听懂,所以,如其说是博客,不如说是我的复习笔记,哈哈 首先先发布一张Cookie原理图 1.什么是 Cookie  “cookie 是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie.你可以使用 Jsp 来创建和取回 cookie 的值.”  cookie 是访问过的网站创建的文件,用于存储浏览信息,例如个人资料信息. 从Jsp的角度看,cookie 就是一些字符串信息.这些信息存放在客户端的

Javascript基础篇小结

Javascript基础篇小结 字数9973 阅读3975 评论7 喜欢28 转载请声明出处 博客原文 随手翻阅以前的学习笔记,顺便整理一下放在这里,方便自己复习,也希望你有也有帮助吧 第一课时 入门基础 知识点: 操作系统就是个应用程序 只要是应用程序都要占用物理内存 浏览器本身也是一个应用程序 浏览器本身只懂得解析HTML 调用浏览器这个应用程序的一个功能绘制 1.javascript介绍 JavaScript操作DOM的本质是=获取+触发+改变 目的:就是用来操作内存中的DOM节点 修改D

我看朴灵评注阮一峰的《JavaScript 运行机制详解:再谈Event Loop》

阮一峰和朴灵对我来说都是大牛,他们俩的书我都买过,阮老师的译作<软件随想录>和朴灵的<深入浅出node.js>.这个事情已经过了4个月了,所以我拿来讲应该也没啥问题. 这件事情是这样的,阮一峰在自己的博客写了篇文章<JavaScript 运行机制详解:再谈Event Loop>,然后朴灵看见了,发现了很多问题,然后在印象笔记又写了篇文章<[朴灵评注]JavaScript 运行机制详解:再谈Event Loop>,由于印象笔记现在已经不能访问了(尼玛也太烂了)

javascript工具--控制台详解(转自 阮一峰博客)

javascript工具--控制台详解(转自 阮一峰博客) 大神这篇博客是写在2011年,主要介绍 "Firefox" 浏览器插件 "Firebug" 的操作,如今主流浏览器对控制台都已经提供了很好的支持.我自己用的最多是谷歌的 "chrome" 浏览器,下面也用 "chrome" 浏览器来调试. 一.显示信息的命令 console.log();  //控制台输入 网页中不会输出 console.info();  //一般信息

JavaScript对象类型详解

JavaScript对象类型详解 JavaScrtip有六种数据类型,一种复杂的数据类型(引用类型),即Object对象类型,还有五种简单的数据类型(原始类型):Number.String.Boolean.Undefined和Null.其中,最核心的类型就是对象类型了.同时要注意,简单类型都是不可变的,而对象类型是可变的. 什么是对象 一个对象是一组简单数据类型(有时是引用数据类型)的无序列表,被存储为一系列的名-值对(name-value pairs).这个列表中的每一项被称为 属性(如果是函

走向DBA[MSSQL篇] 详解游标

原文:走向DBA[MSSQL篇] 详解游标 前篇回顾:上一篇虫子介绍了一些不常用的数据过滤方式,本篇详细介绍下游标. 概念 简单点说游标的作用就是存储一个结果集,并根据语法将这个结果集的数据逐条处理. 观点 正因为游标可以将结果集一条条取出处理,所以会增加服务器的负担.再者使用游标的效率远远没有使用默认的结果集效率高,在默认结果集中,从客户端发送到服务器的唯一一个数据包是包含需执行语句的数据包.而在使用服务器游标时,每一个FETCH语句都必须从客户端发送到服务器,然后在服务器中将它解析并编译为执

[转]JavaScript异步机制详解

原文: https://www.jianshu.com/p/4ea4ee713ead --------------------------------------------------------------------------- 学习JavaScript的时候了解到JavaScript是单线程的,刚开始很疑惑,单线程怎么处理网络请求.文件读写等耗时操作呢?效率岂不是会很低?随着对这方面内容的了解和深入,知道了其中的奥秘.本篇文章就主要讲解一下JavaScript怎么处理异步问题. 一.同

Python基础知识详解 从入门到精通(七)类与对象

本篇主要是介绍python,内容可先看目录其他基础知识详解,欢迎查看本人的其他文章Python基础知识详解 从入门到精通(一)介绍Python基础知识详解 从入门到精通(二)基础Python基础知识详解 从入门到精通(三)语法与函数Python基础知识详解 从入门到精通(四)列表.元组.字典.集合Python基础知识详解 从入门到精通(五)模块管理Python基础知识详解 从入门到精通(六)文件操作PS:很多人在学习Python的过程中,往往因为遇问题解决不了或者没好的教程从而导致自己放弃,为此

Docker基础命令详解——镜像及容器操作

Docker基础命令详解--镜像及容器操作 前言 ? 上篇文章介绍了有关Docker的基础与Linux下docker的安装,本文主要讲解安装docker后的基础使用方法以及命令的介绍,主要是docker镜像操作及容器操作命令. ? 当然,docker的相关命令非常多,可以使用docker help命令查看对应目录以及相关提示命令. Docker镜像操作命令 [[email protected] ~]# which docker /usr/bin/docker 1.镜像搜索:docker sear