JavaScript基础语法(2)

数据类型

js中有六种数据类型,包括五种基本数据类型(Number,String,Boolean,Undefined,Null),和一种复杂数据类型(Object)。在JS中,原始类型有6中:

一、数字类型Number

(1)、整数:

  可以是正数、0、负数,也可以是10进制、8进制、16进制等不同进制幂数的表示。

  八进制是0开头的,后面的每个数都不超过7,就是八进制,如果超过7就是十进制。

  十六进制是以0x开头的,后面可以是0-9, A-F。例如:

  1. <script type="text/javascript">
  2. console. log(123) ;
  3. console. log(0123);//0123是8进制的数 ,不是10进制,值对应的10进制的数是:83
  4. console. log(0xabc);//0xabc是16进制表示的整数,对应10进制的值: 2748
  5. </script>

  浏览器显示为:

(2)、浮点数:

  可以包含小数点,也可以包含e (表示10幕次方数),两个同时包含也可以,不能用8进制和16进制。例如:

  1. //这几种写法,它最终显示都为0.0001
  2. console. log( .0001);
  3. console. log(0.0001);
  4. console.1og(1e-4);
  5. console.1og(1.0e-4);

浮点数将会自动转换为整数。

  1. var num = 1.00;
  2. console.log(num);//1,自动转换为整数

浮点数的最高精确度是17位。

浮点数做数学运算时偶尔有误差:https://www.cnblogs.com/beimingdaoren/p/12739470.html

(3)、数字常量

可以用math对象获得:

数字常量     含义                   数字常量 含义                  
Math.E 自然对数的低,即e Math.LOG10E  以10为底e的对数
Math.LN2 2的自然对数 Math.PI 常数π(3.1415...)
Math.LN10 10的自然对数 Math.SQRT1_2 0.5的平方根
Math.LOG2E   以2为底e的对象 Math.SQRT2 2的平方根

(4)、特殊值

Number对象来获取:

内容 含义     内容 含义
Num.MAX_VALUE 可表示的最大值  Num.POSTIVE_INFINITY 正无穷大
Num.NaN 非数学字符 Num.NEGATIVE_INFINIIY 负无穷小
Num.MIN_VALUE 可表示的最小值    

(5)、NaN:非数字类型。

特点:

  • 涉及到的任何关于NaN的操作,都会返回NaN
  • NaN不等于自身。
  1. var ab= "a1";
  2. console.log(ab/10);// NaN
  3. console.log(NaN == NaN);// false;

(6)、isNaN()函数

用于判断是否是一个非数字类型。如果传入的参数是一个非数字类型,那么返回true;否则返回false;

过程:isNaN()函数,传入一个参数,函数会先将参数转换为数值。如果参数类型为对象类型,会先调用对象的valueOf()方法, 再确定该方法返回的值 是否可以转换为数值类型。如果不能,再调用对象的toString()方法, 再确定返回值。

(7)、数值转换

  • Number()转型函数,可以用于任何数据类型;
  • parselnt(),将值转换为整型,用的比较多;
  • parseFloat();将值转换为浮点型。

二、字符串类型String

字符串是以单引号’或双引号"括起来的任意文本,比如'abc', "xyz"等等。

这里用的单引号与双引号的作用效果完全一样。但是要注意,' '或" "本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有a, b, c这3个字符。

字符串有length属性。可以取得字符串的长度:

  1. var str ="hello";
  2. console.log(str .length);//

字符串的值是不可变的。要改变一个字符串的值,先要销毁原来的字符串,再用另一个包含新值的字符串去填充该字符串。

  1. var lang = "java";
  2. lang =lang + "script";

上面这段代码,先创建一个能容纳10个字符的字符串,然后在这个字符串中填充java和script字符串,最后销毁原来的字符串java和scrip字符串,因为这两个字符串此时已经没用了。
这个过程是在后台发生的。可参照:详解字符串

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

  1. var a = "beiming";
  2. var b = null;
  3. var c = undefined;
  4.  
  5. console.log(a.toString());//beiming
  6. console.log(b.toString());//error报错
  7. console.log(c.toString());//error报错
  8.  
  9. console.log(String(a));//beiming
  10. console.log(String(b));//null
  11. console.log(String(c));//undefined

三、布尔值

那么是true,要么是false,可以直接用true、false表示布尔值,也可以用表达式的结果表示布尔值。

注意:在js中布尔值只能用true和false表示,不能用0和1。

转化为boolean:转型函数Boolean();将某个值转化为Boolean类型,例如:console.log(Boolean(0));//false

四、未定义数据类型

表示在变量被创建后,没给该变量赋值之前所具有的值。

  1. var name = "beiming";
  2. var age;
  3. console.log(name)//beiming
  4. console.log(age);//undefined
  5. console.log(height);//error,变量height没有声明
  6. console.log(typeof name)//string
  7. console.log(typeof age);//undefined
  8. console.log(typeof height);//undefined,变量height没有声明
  1. 上面这段代码中,age虽然声明了,但是没有初始化值,所以,打印出来的是undefined.而变量height没有声明,故报错。
  2. 但是用typeof操作符去检测数据类型的时候,变量age没有初始化,结果是undefined,没有声明变量的height检测的类型也是undefined.

五、空值

  • null类型被看做空对象指针, null类型也是空的对象引用。
  • 只有一个值,即null值,所以,在你用typeof操作符去检测null类型的值时,结果是object类型。
  • 如果你定义了一个变量,但是想在以后把这个变量当做一个对象来用,那么最好将该对象初始化为null值。

六、Object类型

js中对象是一组属性与方法的集合。

具体的关于对象的创建方式以及对象的各种特性,会在后面的的章节中做详细介绍。这里就简单介绍一下六大数据类型中的Object.

constructor属性:构造函数属性,可确定当前对象的构造函数。

  1. console.log(o.constructor == Object);//true
  2. var arr = new Array();
  3. console.log(arr.constructor == Object);//false

JavaScript数据类型 —— 基础语法(2)的更多相关文章

  1. JavaScript编程:javaScript核心基础语法

    1.javaScript核心基础语法: javaScript技术体系包含了5个内容:          1.核心语言定义:          2.原生对象和雷子对象:          3.浏览器对象 ...

  2. JavaScript的基础语法

    对于Javascript的而言没有数据类型的全部都是通过var来定义创建的.比如: <!DOCTYPE html> <html> <head> <meta c ...

  3. JavaScript的基础语法及DOM元素和事件

    一,JavaScript是什么? 1,JavaScript简称:js,是一种浏览器解释型语言,嵌套在HTML文件中交给浏览器解释执行.主要用来实现网页的动态效果,用户交互及前后端的数据传输等. 2,J ...

  4. JavaScript的基础语法,你真的了解吗?

    这篇文章是在我们熟悉了JS的基础语法后,很少有人去关注的一些细节部分.如果掌握了某些细节也许会对代码的改善有着非凡的作用.也许会使我们的代码更严谨,更高效. 1.if语句的条件 if条件中,括号里是布 ...

  5. JavaScript 正则表达式基础语法

    前言 正则表达式在人们的印象中可能是一堆无法理解的字符,但就是这些符号却实现了字符串的高效操作.通常的情况是,问题本身并不复杂,但没有正则表达式就成了大问题.javascript中的正则表达式作为相当 ...

  6. JavaScript核心基础语法

    1 什么是JavaScript? 是一种嵌入在网页中的程序段. 是一种解释型语言,被浏览器解释执行. 由Netscape发明,ECMA(欧洲计算机制造商协会)将其标准化. JavaScript借用了J ...

  7. 2019-9-24:渗透测试,JavaScript数据类型基础学习

    JavaScript 数据类型 值类型(基本类型):字符串(String).数字(Number).布尔(Boolean).对空(Null).未定义(Undefined).Symbol. 引用数据类型: ...

  8. JavaScript之基础语法

    第一章 javascript语法 一, js代码的引入 方式一:在html页写js代码 <script> alert('hello,world') </script> 方式二: ...

  9. 1.JavaScript 教程:基础语法

    简介: JavaScript web 开发人员必须学习的 3 门语言中的一门: HTML 定义了网页的内容 CSS 描述了网页的布局 JavaScript 网页的行为 用法: (1)HTML 中的脚本 ...

随机推荐

  1. NDCG的理解

    2019-05-29 14:15:44

  2. Building Applications with Force.com and VisualForce (DEV401) (二三):Visualforce Componets (Tags) Library Part III

    Dev401-024:Visualforce Pages: Visualforce Componets (Tags) Library Part IIIStatic Resources1.Static ...

  3. effective-java学习笔记---优先使用泛型方法30

    泛型类型比需要在客户端代码中强制转换的类型更安全,更易于使用. 当你设计新的类型时,确保它们可以在没有这种强制转换的情况下使用. 这通常意味着使类型泛型化. 如果你有任何现有的类型,应该是泛型的但实际 ...

  4. 食物图片变菜谱:这篇CVPR论文让人人都可以学习新料理

    根据 Facebook 的统计,Instgram 上的美食图片数量已经超过 3 亿张.然而,获取食物烹饪方法的途径依然有限,例如,通过烹饪网站或相关教程.怎样能够挖掘丰富食物图片背后的烹饪方法,让每个 ...

  5. Java&Spring过时的经典语录

    字符串拼接:请用StringBuffer代替String直接相加提高性能 过去的理论   有没有人告诉过你开发中不要 String newString = "牛郎"+"织 ...

  6. coding++:Spring IOC/DI 实现原理

    什么是 SpringIOC: spring ioc 指的是控制反转,IOC容器负责实例化.定位.配置应用程序中的对象及建立这些对象间的依赖.交由Spring容器统一进行管理,从而实现松耦合. “控制反 ...

  7. Python3实现xml转json文件

    使用了Python的 xml.etree.ElementTree 库,Python版本Python 3.6.6 from xml.etree import ElementTree LISTTYPE = ...

  8. Mac OSX安装 Django MySQL mysqlclient

    Python3.6 $ brew install mysql-connector-c # 如果没有安装brew,先安装:# 安装可以查看:https://www.cnblogs.com/Jokergu ...

  9. python—nnlog日志

      #when='S'每秒产生一个[D天默认 H M S]# backCount='5'## level是设置打印级别默认是debug级别(下面是四个级别可以指定打印) import nnlog lo ...

  10. CodeForces 6C(贪心 + 模拟)

    题目链接 思路如下 贪心的思想,⚠️女士优先的策略,当它们吃掉之前的物品所用的时间相同的时候,此时女士先开始 继续吃 题解如下 #include<iostream> using names ...