1. 六种数据类型:

string字符串;number数值;boolean布尔值;null空值;undefined 未定义;object对象

基本数据类型(值类型):

string字符串;number数值;boolean布尔值;null空值;undefined 未定义;

引用数据类型:object对象

  • string字符串:在JS中字符串需要使用双(单)引号引起来。

   var str="hello";

  在字符串中利用 \ 作为转义字符,例如str="我说:\"今天天气真好\"";

  \” 表示双引号

  \’表示单引号

  \n表示换行

  \t制表符

  \\ 表示\

数据类型的判断  在JS中所有的数值都是number类型,包括整数型和浮点型(小数)

可以使用一个运算符typeof来检查一个变量的类型

语法:typeof 变量

console.log(typeof a)

JS中可以表示数字的最大值:console.log(Number.MAX_VALUE)

Number.MAX_VALUE代表的数字超过了最大值,则会返回一个Infinity,表示正无穷

Number.MIN_VALUE代表大于0的最小值

NaN是一个特殊的数字,表示Not A Number,使用typeof 检查一个NaN也会返回number

a=”abc”*”bcd”

在JS中整数的运算基本可以保证精确,如果使用JS进行浮点元素运算,可能得到一个不精确的结果,千万不能使用JS进行对精确度要求较高的运算。

  • boolean布尔值:true,false进行逻辑判断

  Null类型的值只有一个,就是null:表示一个为空对象

利用typeof检查返回是object

  undefined类型的值只有一个,就是undefined:当声明一个变量,但并不给变量定义

      var b;

      console.log(typeof b);   /*会返回一个undefined*/

强制类型转换:将一个数据类型强制转换为其他的类型数据:string字符串;number数值;boolean布尔值;

(1)将其他的数据类型转换成string:

方法一:调用被转换数据类型的toString()方法,该方法不会改变原变量,会将转换结果返回。null与undefined没有toString( )方法,若调用他们的方法,会报错!!!

a=123;

console.log(typeof a);

b=a.toString();

console.log(typeof b);

方法二:调用String( ) 函数,并将在转换的数据作为参数传递给函数

a=123;

// 调用String ( )将a转换为字符串

a=String(a);

使用String( ) 函数做强制类型转换时,

对null和undefined,就不会调用toString( )方法

会将null直接转换为“null”;将undefined直接转换为“undefined”

对Number和boolean实际上就是调用的toString( )方法

方法三:任何数据类型转换成string,只需为任意数据类型加一个”  ”

var c=123;

c=c+“ ”

(2)将其他数据类型转换为Number

方法一:使用Number( ) 函数,将a转换成Number类型

字符串--->数字

  1. 若是纯数字的字符串,则直接将其转换为数字
  2. 若字符串中有非数字的内容,则转换为NaN
  3. 若字符串是一个空串或者是一个全是空格的字符

  布尔--->数字

  true转成1         false转成0

  Null--->数字        0

  Undefined--->数字   NaN

方法二:这种方式专门用来对付字符串

-parseInt( )  把一个字符串转换成一个整数

可以将一个字符串中的有效的整数内容去出来,转换成Number

-parseFloat( ) 把一个字符串转换成一个浮点数

与parseInt()作用一样,不同:可以获得有效的小数

若对非string使用parseInt( )parseFloat( ),会将其先转换成String后操作

在JS中需要表示16进制的数字,则需要以0x开头,输出以16进制输出。

表示8进制的数字,则以0o开头

表示2进制的数字,则以0b开头,但不是所有的浏览器都支持

(3)将其他的数据类型转换成boolean型:(0,NaN),undefined,Null--false;其他数,空串--true

方法一:使用Boolean( )函数

a=Boolean( )

3.  运算符:操作符

通过运算符对一个或多个值进行运算,获取运算结果

typeof就是运算符,可以获得一个值的类型,会将该值的类型以字符串的形式返回

(number,string,boolean,undefined,object)

算数运算符:+-*/%

当对非number类型的值进行运算时,会将这些值转换成number然后再计算

任何值和NaN做运算都得到NaN

加法运算:任何值和字符串做加法运算都先转换成字符串,然后和字符串做拼串的操作

r=2+null;  //2

result=true+false;  //1

result=true+1;  //2

r=”123”+”456”  //字符串相加--拼串组合

r=123+”1”;

r=true+”hello”   //truehello

减法运算 :任何值与number做减法,全部转换成number

result=a-true;   //1234-1=1233

result=a-’1’;   //1233

乘法运算 :任何值与number做乘法,全部转换成number

result=a*true;   //1234-1=1233

result=a*’2’;   //2468

除法运算 :任何值与number做除法,全部转换成number

result=a/true;   //1234

result=a/’2’;   //617

注意:任何值与number做-*/运算时都会自动转换成number

可以通过将一个值-1,/1,*1将其转换成number====原理与Number( )相同,但更加简单。

任何值与string做+运算时都会自动转换成string

可以通过将一个值+‘  ’将其转换成string====原理与String( )相同,但更加简单。

 

% 取余的作用:

1、可以拿到余数

2、可以拿到一个范围

任何的一个数对78取余,余数永远是在0~77之间  包含0和77      (num)%78 + 1

  1. 运算优先级:r=1+2+’3’----’33’;     r=’3’+1+2----312
  2. 一元运算符:只需要一个操作数

  + 正号:对数值无影响

  对于非number类型的值,对一个其他的数据类型+,可将其转换为number,原理与Number( ) 相同。例如:+‘2’==2;+true==1

  - 负号:对数字进行取反

  对于非number类型的值,会将它先转换为number,然后运算

  注意:var result=1+ +2+3;

    Console.log(result=+result)

4. 自增 自减运算符

自增++:通过自增可以使变量在自身的基础上增加1

自增分成两种:后++(a++),前++(++a)

无论是a++,还是++a,都会立即使原变量的值自增1

不同:a++和++a的值不同

a++值:等于原变量的值(自增前值);++a值:等于原变量的值(自增后值)

var a=3;

a++;

console.log(a);  //a=4

自减--:通过自减可以使变量在自身的基础上减1

自减分成两种:后--(a--),前--(--a)

a--值:等于原变量的值(自减前值);--a值:等于原变量的值(自减后值)

var  n1=10;

var  n2=20;

var  n=n1++;

console.log(‘n=’+n);        //n1=11,n1++=10=n  //10

console.log(‘n1=’+n1);                        //11

n=++n1;

console.log(‘n=’+n);        //n1=12 n=12       //12

console.log(‘n1=’+n1);                        //12

n=n2--;                   //n2=19  n=20

console.log(‘n=’+n)                          //20

console.log(‘n2=’+n2);                       //19

n=--n2;                   //n2=18   n=18

console.log(‘n=’+n);                         //18

console.log(‘n2=’+n2);                       //18

5.  逻辑运算符

&&  ||  ! (与或非)

非运算:对一个布尔型进行取反;可以将任意数值取二次反,将其转换成布尔值。

var a=10;

result=!!a;

console.log(result);         //true

console.log(typeof result);   //boolean

与运算:对符号两侧的值进行与运算并返回结果

若二个值为true则返回true

var result= true && true;

console.log(result);

JS的与属于短路的“与”,若第一个值为false,不会看第二值。

 

或运算:对符号两侧的值进行或运算并返回结果

有对则对,就返回true;都为false,就返回false

JS的与属于短路的“或”,若第一个值为true,不会看第二值

  1. && ||非布尔值的情况

对非布尔值进行与或运算时,会向将其转换为布尔值,然后再运算,并且返回原值

若两个值都为true,则返回后面的值

var result= 1&&2;         //2

console.log(result);

若0与正数:返回0

var result= 0&&2;         //0

console.log(result);

若两个值都为false,则返回前面的值

var result= NaN&&0;         //NaN

console.log(result);

若第一个值true,则返回第二个值;若第一个值false,则返回第一个值

若第一个值true,则返回第一个值;若第一个值false,则返回第二个值

6.  赋值运算符

= 可以将符号右侧的值赋值给符号左侧值的变量  +=////-=///*=/// /= /// %=

var a=2;

a+=4;

console.log(a);   //a=6

7.  关系运算符

>  <  >=  <=  ==  !=  ===  !==

返回true/false

非数值情况:对于非数值进行比较时,会将其转换为数字然后再比较。

1>true:false

1≥true:true

1>’0’:true

10>’Hello’:false       任何值跟null比较都是false

10<null:false

true>false:true

特殊情况:符号两端的值都是字符串时,不会将其转换为数字进行比较,而会分别比较字符串中字符的Unicode编码

‘11’<’5’:true-----一位一位进行比较

  1. Unicode编码: \u四位编码(转义字符输入unicode)---十六进制

网页中:&#编码---十进制;

<h1 style="font-size: 200px;">☠</h1>

相等运算符==

console.log(1==2)  //false

console.log(1=="1")    //true  当使用==比较时,会进行类型转换成相同类型,再比较(大部分:转换成number)

 

全等===

不会转换成相同的类型,直接比较

注意:undefined衍生自null:两个值作比较时,会返回true;

console.log(undefined==null)     //true

NaN不和任何值相等,包括自身

判断b值是否是NaN:可以通过isNaN( )函数来判断一个值是否是NaN

不相等!=

不相等返回true;相等返回false

console.log(1!="1")    //false

不全等!==

不会转换成相同的类型,直接比较

8.  三元运算符:条件运算符

语法: 条件表达式?语句1:语句2;

执行流程:条件运算符在执行时,首先对条件表达式进行求值

若该值为true,则执行语句1,并返回执行结果

若该值为false,则执行语句2,并返回执行结果

false?alert('失败'):alert('成功');

// 获取a,b中的最大值

var a=3;

var b=34;

max=a>b?a:b;

// 获取a,b中的最大值

var a=3;

var b=34;

max=a>b?a:b;

// 获取a,b,c中的最大值

var a=3;

var b=34;

var c=54;

max=a>b?a:b;

max=max>c?max:c;

console.log(max)

若条件的表达式的求值结果是一个非布尔值,会转换成布尔值,然后再运算。

9.  运算符的优先级

16

()

15

++、--

14

!、~、+(单目)、-(单目)、typeof、void、delete

13

%、*、/

12

+(双目)、-(双目)

11

<<、>>、>>>

10

<、<=、>、>=

9

!=、、!、===

8

&

7

^

6

|

5

&&

4

||

3

?:

2

=、+=、-=、*=、/=、%=、<<=、>>=、>>>=、&=、^=、|=

1

,

10.  语句

在JS中可以使用{ }来为语句进行分组,同一个{ }的语句称为一组语句,要么都执行,要么都不执行。一个{ }中的语句称为一个代码块。代码块只分组,没有其他用途。

JavaScript基础-02的更多相关文章

  1. javascript基础02

    javascript基础02 1.数据类型 数据类型的描述在上篇的扩展中有写到链接 由于ECMAScript数据类型具有动态性,因此的确没有再定义其他数据类型的必要.这句话很重要. 如果以后再数据类型 ...

  2. javaScript基础-02 javascript表达式和运算符

    一.原始表达式 原始表达式是表达式的最小单位,不再包含其他表达式,包含常量,直接量,关键字和变量. 二.对象和数组的初始化表达式 对象和数组初始化表达式实际上是一个新创建的对象和数组. 三.函数表达式 ...

  3. JavaScript学习02 基础语法

    JavaScript学习02 基础语法 JavaScript中很多基础内容和Java中大体上基本一样,所以不需要再单独重复讲了,包括: 各种算术运算符.比较运算符.逻辑运算符: if else语句.s ...

  4. JavaScript基础第02天笔记

    JavaScript基础第02天 1 - 运算符(操作符) 1.1 运算符的分类 运算符(operator)也被称为操作符,是用于实现赋值.比较和执行算数运算等功能的符号. JavaScript中常用 ...

  5. JavaScript基础视频教程总结(101-110章)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  6. JavaScript基础视频教程总结(071-080章)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  7. JavaScript基础视频教程总结(031-040章)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  8. JavaScript 基础 (变量声明, 数据类型, 控制语句)

    创建: 2017/09/16 更新: 2017/09/24 更改标题 [JavaScript 概要]-> [JavaScript 基础] 完成: 2017/09/25 更新: 2017/10/0 ...

  9. JavaScript基础入门06

    目录 JavaScript 基础入门06 Math 对象 Math对象的静态属性 Math对象的静态方法 指定范围的随机数 返回随机字符 三角函数 Date对象 基础知识 日期对象具体API 构造函数 ...

随机推荐

  1. jmeter 及测试(转载)

    负载测试:在一定的工作负荷下,给系统造成的负荷及系统响应的时间. 压力测试:在一定的负荷条件下,长时间连续运行系统给系统性能造成的影响.   1.性能测试(Performance Test):通常收集 ...

  2. BT面板安装教程

    面板特点 一键配置服务器环境(LAMP/LNMP) 一键安全重启 一键创建管理网站.ftp.数据库 一键配置(定期备份.数据导入.伪静态.301.SSL.子目录.反向代理.切换PHP版本) 一键安装常 ...

  3. java 之死循环

    public class StringTest { public static void main(String[] args) { System.out.println(getStringCount ...

  4. ajax异步上传图片&SpringMVC后台代码

    function uploadPic(){ var options = { url : "/upload/updatePic.action", type : "post& ...

  5. 今天完成了deviceman的程序,压缩成deivceman.rar

    目录在d:\android_projects\deviceman 压成了deviceman.rar 发送到了yzx3233@sina.com

  6. 集合和Iterator迭代器

    集合 集合是java中提供的一种容器,可以用来存储多个数据. 注意: ①.集合只能存放对象.比如你存一个 int 型数据 1放入集合中, 其实它是自动转换成 Integer 类后存入的,Java中每一 ...

  7. Django学习路36_函数参数 反向解析 修改404 页面

    在 templates 中创建对应文件名的 html 文件 (.html) 注: 开发者服务器发生变更是因为 python 代码发生变化 如果 html 文件发生变化,服务器不会进行重启 需要自己手动 ...

  8. Python os.makedev() 方法

    概述 os.makedev() 方法用于以major和minor设备号组成一个原始设备号.高佣联盟 www.cgewang.com 语法 makedev()方法语法格式如下: os.makedev(m ...

  9. PHP fileperms() 函数

    定义和用法 fileperms() 函数返回文件或目录的权限. 如果成功,该函数以数字形式返回权限.如果失败,则返回 FALSE. 语法 fileperms(filename) 参数 描述 filen ...

  10. 账本APP开发

    服务端开发 好好学习,天天向上 本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star,更多文章请前往:目录导航 前言 我平时喜欢用账 ...