javascript权威指南--学习笔记

-一、JavaScript基本数据类型

1、数字--Number类

2、字符串--String类

3、布尔--Boolean类

4、函数Function

5、对象Object

6、数组Array

7、null

8、undefined

备注:    当一个未定义的值用于布尔环境,他就会转为false,用于数字环境就会转为0 ,用于字符串环境就会转为undefined

 

二、JavaScript对象类

1、日期和时间 Date

 

三、数据类型转化

将数字转化我字符串

(1)数字用在一个字符串表达式中,就会先转为字符串,所以要将一个数字转为字符串直接加加一个空字符串就可以。

      var n = 100 ; n = n + " " ; //typeof n ===string

 (2)使用String函数, n = String(n);

 (3)使用toString方法 , n = n.toString();

将字符串转化为数字

 (1)当字符串在运算环境中,则会自动转化为数字。如 var t = "23" * "2" .// 46 ,

         所以我们可以利用这一点,将一个字符串直接减去 0 var t = "23" - 0; 注意,字符串加0会导致字符串连接,

         而不是转化数据类型。

  (2)使用Number函数 var number = Number(“23”),

  (3)使用parseInt或者parseFloat会去掉非数字部分,转为整型和浮点型。不能把制定的字符串转为数组,如parseFloat("$33.99")//输出NaN

          parseInt甚至可以用另一个参数来解析数字的参数,合法值再2-36之间。parseInt('11',2) //输出3,1*2 +1

  布尔类型的转换

  ECMAScript指出,如果一个字符串以“0”开头的话,parseInt会将它解析为八进制或者10进制,存在不确定性,所以,不要用parseInt去解析“0”

  开头的字符串。除非parseInt(“09898”,10)显示指出。

   (1)如果一个布尔值用在数字环境中,true转为1,false转为 0;如果一个布尔值用在字符串环境中,true转为true,false转为false,空值和未定义转为false,否则转为true

   (2)使用Boolean(x) //true或者false

 

四、基本数据类型的包装对象

 eval()方法对待string字符串和string对象是不一样的,如果无意间传递给他一个string对象,那么可能无法像预期那样子工作。

 object()函数,任何的数字,字符串,布尔值都可以转化为对应的包装对象

 对象转化为其他对象。valueOf

传值:当一个数据被操作,就是复制一份这个数据放在变量中,提供函数或者方法取使用,如果一旦这个函数或者方法

改变了这个数据,那也只是改变了函数的这个拷贝值的值,对原先的值不会有影响。 

这个就是基础数据类型:数字(number),布尔(boolean)、字符串(string)

传址:当这个数据被操作,被操作的只有这个数据的引用(地址),如果以传址方式进行,那么变量存储的是该值的地址,

复制传递的都是这个地址。在传址时只是这个地址被复制一份,而不是该值,如果通过一个地址(如函数参数变量)改变了该值,

那么这个值就被改变了。

这个是引用类型数据:对象Object ,数组(Array)、函数(Function)

 

五、运算符

算术运算符

(1)加号运算符 + :可以进行算术运算,也可以进行字符串拼接。字符串和数字相加那么直接变成字符串,数字和数组、对象相加变成字符串。

              var s = 100 ;var obj = {name : 'beryl'};var array = [1,3]var t = s + obj;console.log(typeof t)//string类型

         + 运算符做运算任何都会转为数字或者字符串。

(2)减号运算符 -:二元操作,两个都是数字的值可以使用- 运算符进行减法,但是如果其中一个不是数字, - 就会将其转化为 数字

(3)乘法运算符 * :同减号

(4)除法运算符 / :二元操作,任何的数字/0 结果都是NaN

(5)模运算符 %:取余数,5%2  为1

(6)一元减法运算符 - :-1,取反

(7)一元加法运算符+:+1000,+"string"//NaN

(8)递增运算符++:该运算符只能是变量或者数组一个元素或者对象的一个属性。++i,i++通常用在循环中

(9)递减运算符--

(10)相等运算符 == :宽松检测,

(11)等同运算符 === :严格检测

var s1 ;
console.log(s1 === undefined )//true
等同的判定方法:
1、如果两个值类型不同,那他们就不等同。
2、如果两个值有其中一个是NaN(包括它本身),那么这两个值一定不等同。

(12) in 运算符 。in左边要是字符串或者可以被转为字符串,右边是对象或者数组。左边如果有在对象里面,返回true,否则返回false。

           “x” in {x:1,y:2} // true

(13)instanceof运算符。iinstanceof左边是对象,右边是对象的类,如果对象属于这个对象的类,返回true,否则,返回false。

          var d = new Date(); d instanceof Date  //true

         如果instanceof右边不是一个构造函数,而是一个对象(String,Number),返回false。

         d instanceof Stirng//返回false

(14)逻辑非运算符

(15)位运算符 >>  ,>>>

(16)赋值运算符 =

(17)条件运算符。x>y?x+y :-x+y;

(18)typeof运算符。数字、字符串、布尔值——返回 number、string、boolean

          数组,对象(String,Number,Boolean包装对象),null返回object

(19)对象创建运算符。

(20)函数运算符()

六、语句

(1)表达式语句

(2)if语句。else if 语句。

(3)switch语句。

       switch(表达式){

    case 1:

      break;

    case ‘number’:

      break;

    case 60*60*24:

      break;

    case Math.PI:

      break;

    case n+1://case后面跟表达式

      break;

    case a[0]:

      break;

    default:

      break;

    }

(4)while语句

(5)for语句

(6)default语句:可以退出最内层的循环和switch语句 default;

(7)continue语句:用于开始循环的新迭代。continue;只能用于while ,do while ,for , for in中

(8)var语句,生命变量的语句,变量提升,可以作为for循环的一部分。

(9)function语句。

(10)return 语句。return只能出现在函数中,作为函数的返回值,也可以return ;终止函数。

(11)throw语句。throw语句就是抛出一个异常,就是用信号通知发生了错误或者异常。

   try块中,错误以下的部分都不会被知行。

   catch异常,捕捉异常,就是知道异常了,然后就要处理他。catch块只有在有错误的时候,才会被知行。

(12)finally 语句。只要执行try块语句,finally块语句都会被执行。通常用户try从句代码后,用于清除的操作,

  如果try快中遇到return break continue时,那么再转移到新的目的地钱,finally快都会被执行。

(13)with语句。with语句用于修改暂时修改作用域链。

总结:

 

 

 

 

    

    

 

 

 

      

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 















 

转载于:https://www.cnblogs.com/zhangyuanjiao/p/9799342.html

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

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

相关文章

支持 dotnet 6 的 dnSpy 神器版本

官方的 dnSpy 在 2021 时,由于某些吃瓜的原因 wtfsck 将 dnSpy 给 Archived 掉,在大佬被哄好之前,预计是不再更新。最新官方版本对 dotnet 6 的支持较弱,对于很多 dotnet 6 应用都无法成功调试,附加调试上去将会让应用…

cmd命令

mstsc 开启远程连接services.msc 开启服务sc delete 服务名称 删除服务telnet 106.75.97.193 查看端口是否占用netstat -a 查看端口监听状态

Robot Framework 教程 (3) - Resource及关键字 的使用

From:http://www.cnblogs.com/buaawp/p/4754399.html Robot Framework 教程 (3) - Resource及关键字 的使用 在进行软件自动化测试时,我们设计并编写好一个测试脚本的业务逻辑之后,需要将其中的业务数据提取为变量,并对业务逻辑进行封装。在后…

mysql中的操作指令,MySQL中常用指令操作的介绍(代码示例)

本篇文章给大家带来的内容是关于MySQL中常用指令操作的介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。l 创建数据库:CREATE DATABASE table_name;l 删除数据库:DROP DATABASE table_na…

mt19937 -- 高质量随机数

优点:产生速度快, 周期大 用法: #include<bits/stdc.h> using namespace std;int main() {mt19937 mt_rand(time(0));cout << mt_rand() << endl;return 0; } 转载于:https://www.cnblogs.com/widsom/p/9935561.html

使用 AutoMapper 自动在多个数据模型间进行转换

访问数据库、IPC 通信、业务模型、视图模型……对于同一个业务的同一种数据&#xff0c;经常会使用多种数据模型工作在不同的代码模块中。这时它们之间的互相转换便是大量的重复代码了。使用 AutoMapper 便可以很方便地在不同的模型之间进行转换而减少编写太多的转换代码&#…

集合类型内建方法

一、集合类型方法方法名称 操作 s.issubset(t)如果s是t的子集&#xff0c;则返回True&#xff0c;否则返回Falses.issuperset(t)如果s是t的超集&#xff0c;则返回True&#xff0c;否则返回Falses.union(t)返回一个新集合&#xff0c;该集合是s和t的并集s.intersection(t)返回…

Maven基础:Maven环境搭建及基本使用(1)

1. Maven环境搭建 1.1 Maven简介 1.2 Maven下载及环境设置 Maven下载地址&#xff1a;http://maven.apache.org/download.cgi 当前下载版本&#xff1a;apache-maven-3.5.0-bin.zip&#xff0c;解压之后路径 D:\Program Files\apache-maven-3.5.0 Maven环境变量设置&#xff1a…

mysql主外键引用关系,关于mysql:数据主/外键关系

我想对于那些已经开发了许多数据库模式的人来说&#xff0c;这将是一个简单的答案&#xff0c;但是我最近发现自己承担了优化(或尝试优化)数据库模式的任务&#xff0c;并且一直在阅读"高性能MySQL"&#xff0c;并且剩下一个关于在模式中使用或"过度使用"外…

解读微软开源MMLSpark:统一的大规模机器学习生态系统

AI前线导读&#xff1a;目前&#xff0c;有很多深度学习框架支持与Spark集成&#xff0c;如Tensorflow on Spark等。然而&#xff0c;微软开源的MMLSpark不仅集成了机器学习框架&#xff08;CNTK深度学习计算框架、LightGBM机器学习框架&#xff09;&#xff0c;还可以将这些计…

floyd判环算法(龟兔赛跑算法)

floyd判环算法&#xff08;龟兔赛跑算法&#xff09; 注意&#xff0c;这个算法是用来判断一条链一条环的图&#xff0c;环的长度或者环与链的交界处的&#xff0c;所以此floyd非彼floyd&#xff08;虽然都是一个人想出来的&#xff09;。 &#xff08;图不是我的&#xff09; …

一个redis的连接库的实现

2019独角兽企业重金招聘Python工程师标准>>> import socketdef format_message( args):"""Create redis message:param args:Message data"""l u"*%d" % len(args)lines [l.encode(utf-8)]for arg in args:if not isinst…

matlab 边缘检测不闭合,Matlab多种图像边缘检测方法

1、用Prewitt算子检测图像的边缘I imread(bacteria.BMP);BW1 edge(I,prewitt,0.04); % 0.04为梯度阈值figure(1);imshow(I);figure(2);imshow(BW1);2、用不同σ值的LoG算子检测图像的边缘I imread(bacteria.BMP);BW1 edge(I,log,0.003); % σ2imshow(BW1);titl…

实现CSS在线美化(格式化)、压缩、加密、解密、混淆工具-toolfk程序员工具网

本文要推荐的[ToolFk]是一款程序员经常使用的线上免费测试工具箱&#xff0c;ToolFk 特色是专注于程序员日常的开发工具&#xff0c;不用安装任何软件&#xff0c;只要把内容贴上按一个执行按钮,就能获取到想要的内容结果。ToolFk还支持 BarCode条形码在线生成、 QueryList采集…

只是他给的实在太多了!

工作几年后&#xff0c;总是会问自己一个问题&#xff0c;工作的意义是什么&#xff1f;这个如果要在网络上寻找答案&#xff0c;那一定是多如牛毛&#xff0c;每一个人都有一套自己的看法。在一开始出入社会工作之时&#xff0c;我并没有意识到这个问题&#xff0c;更没有思考…

[ci]jenkins server启动,通过jnlp的方式启动slave(容器模式)

jenkins server启动,通过jnlp的方式启动slave. java -jar jenkins.jar 配置jnlp端口--全局安全 配置云 配置项目 执行成功 转载于:https://www.cnblogs.com/iiiiher/p/7978831.html

Oracle 中UNDO与REDO的差别具体解释

一 为了更清楚的看出2者差别&#xff0c;请看下表&#xff1a; UNDO REDO Record ofHow to undo a changeHow to reproduce a changeUsed forRollback, Read-ConsistencyRolling forward DB ChangesStored …

php实现文件留言,PHP文件操作及实例:留言板

一、文件操作函数1.创建文件&#xff1a;touch(./xxx.php);bool touch ( string $filename [, int $time time() [, int $atime ]] )2.复制文件&#xff1a;copy(./xxx.php,./yyy.php);3.移动或重命名&#xff1a;rename(./xxx.php,./yyy.php);4.删除文件&#xff1a;unlink(.…

WPF-11 路由事件之一

什么是路由事件&#xff1f;我们从两个维度来理解路由事件&#xff1a;功能的角度来看&#xff0c;路由事件是一种事件类型&#xff0c;不仅仅可以在事件源上处理事件响应&#xff0c;还可以在元素树的多个侦听器上处理事件响应(事件侦听器是附加和调用事件处理程序的元素。事件…

个人总结的一个中高级Java开发工程师或架构师需要掌握的一些技能...

近三年&#xff0c;其实都是在做一个项目&#xff0c;项目是一个大型的多节点部署的项目&#xff0c;做了好几个版本&#xff0c;中间用到了很多技术和框架&#xff0c; 也用了一些管理工具和敏捷实践。我这里不是来说项目的&#xff0c;因为最近看了一些招聘信息&#xff0c;结…