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,一经查实,立即删除!

相关文章

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

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

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

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

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

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

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

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

一个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…

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

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

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

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

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

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

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

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

Android 进程常驻(5)----开机广播的简单守护以及总结

这是一个轻量级的库,配置几行代码。就能够实如今android上实现进程常驻,也就是在系统强杀下,以及360获取root权限下。clean master获取root权限下都无法杀死进程 支持系统2.3到6.0 支持大部分设备,包含三星。华为。oppo&#xff0…

[k8s]metricbeat的kubernetes模块kube-metric模块

正确姿势启动metricbeat metricbeat.modules: - module: systemmetricsets:- cpu- filesystem- memory- network- processenabled: trueperiod: 10sprocesses: [.*]cpu_ticks: falseoutput.elasticsearch:hosts: ["http://192.168.x.x:9200"]setup.template.name: &q…

Animate与transform的使用

Animate是用css给前端加载动画的效果&#xff1a; 网址&#xff1a;https://daneden.github.io/animate.css/ <!DOCTYPE html> <html lang"en"> <head><link rel"stylesheet" href"static/css/Animate.css"><meta ch…

ASP.NET Core 6框架揭秘实例演示[29]:搭建文件服务器

通过HTTP请求获取的Web资源很多都来源于存储在服务器磁盘上的静态文件。对于ASP.NET应用来说&#xff0c;如果将静态文件存储到约定的目录下&#xff0c;绝大部分文件类型都是可以通过Web的形式对外发布的。“Microsoft.AspNetCore.StaticFiles” 这个NuGet包中提供了三个用来处…

【我们一起写框架】C#的AOP框架

原文:【我们一起写框架】C#的AOP框架前言 AOP&#xff0c;大家都是听过的&#xff0c;它是一种面向切面的设计模式。 不过AOP虽然是被称为设计模式&#xff0c;但我们应该很少能看到AOP设计的框架。为什么呢&#xff1f; 因为&#xff0c;AOP单独设计的框架几乎是无法使用的。普…

新浪微博授权认证过程

为什么80%的码农都做不了架构师&#xff1f;>>> 一、授权认证 1、请求用户授权Token URL&#xff1a; https://api.weibo.com/oauth2/authorize HTTP请求方式:GET/POST 请求参数 必选 类型及范围 说明 client_id true string 申请应用时分配的AppKey。 redire…

VisualStudio 使用 FastTunnel 辅助搭建远程调试环境

有时候需要远程调试一些用户问题&#xff0c;期望能使用本机的 Visual Studio 开发环境&#xff0c;调试远程的用户的设备上的应用。这时会遇到的一个问题是如何让本机的 Visual Studio 可以连接上远程的用户的设备&#xff0c;从而进行调试。本文将告诉大家如何采用 FastTunne…

Python1

python介绍python是一种解释型的&#xff0c;面对对象的。带有动态语义的高级程序设计语言python简史1989年,Guido(龟叔)为ABC 语言写的一个插件。因Monty Python的喜剧团体的原因,故给这个语言起名为python。linux也是1989年诞生的,1991年正式发布linux1.0内核;1990年, 发布py…

ncut算法matlab实现,ncut_multiscale_1_6 经典的图像分割算法 的Matlab代码。 238万源代码下载- www.pudn.com...

文件名称: ncut_multiscale_1_6下载收藏√ [5 4 3 2 1 ]开发工具: matlab文件大小: 587 KB上传时间: 2015-04-17下载次数: 4提 供 者: HH详细说明&#xff1a;经典的图像分割算法NCut的Matlab代码。-Matlab code of classic image segmentation algorithm NCut .文件列表(…

使用.NET从零实现基于用户角色的访问权限控制

使用.NET从零实现基于用户角色的访问权限控制本文将介绍如何实现一个基于.NET RBAC 权限管理系统&#xff0c;如果您不想了解原理&#xff0c;可查看推送的另一篇文章关于Sang.AspNetCore.RoleBasedAuthorization[1] 库是使用介绍&#xff0c;直接使用该库即可。背景在设计系统…

数据归一化

数据归一化 数据的标准化是将数据按比例缩放&#xff0c;使之落入一个小的特定区间&#xff0c;一般为0到1之间。在某些比较和评价的指标处理中经常会用到&#xff0c;去除数据的单位限制&#xff0c;将其转化为无量纲的纯数值&#xff0c;便于不同单位或量级的指标能够进行比较…