《avascript 高级程序设计(第三版)》 ---第三章 基本概念

本章主要介绍Javasript语言的一些语法:

  1.严格模式:开启:"use strict";

  2.变量:全部用var来定义,在函数中使用的称为局部变量,不能全局使用。

  3.数据类型:undefined,null,boolean,number,string,object。不可以定义自定义类型。

   1)使用typeof操作符返回变量的数据类型。

   2)Boolean类型:

     使用Boolean()函数可以把各种数据类型转换成布尔值,转换规则有:

     (1)如果是String 非空字符串 true 空字符串 false

     (2)如果是Number,非零数组,包括无穷大 true  0和NaN false

     (3)如果是Object,任何对象 true  null false

     (4)undefined  n/a  undefined false

    注意:undefined == null 是true ,但是有区别:undefined 是默认的,如果未定义的变量是对象的话,就一定要定义为null。

   2)关于浮点数,因为存在精度问题,所以不要试图对一个浮点数做比较

     数值范围的问题:在ECMAScript中,最小值是Number.MIN_VALUE,最大值是Number.MAX_VALUE.超出范围显示Infinity。可以用isFinite()函数判断是否在范围之间。

     数值转换:用于把非数值转换为数值:Number() parenInt() parseFloat() 第一个函数用于把任何数据类型转化。后两个适用于字符串。

    Number()函数有以下转换:如果是  布尔型,转1或0.  数值 直接转出。  null值,转出0.  undefined,转出NaN。  字符串的话,如果只有数字转出,如果有字符,转出NaN。  如果是空的,转出0.

    parsenInt()函数有以下转换:看第一个字符是不是数字来决定是否转出。关于进制的问题,提供第二个参数是进制数。

    parsenFloat()函数有以下转换:它在转换的时候只适用于十进制,所以碰到十六进制数据会转出0.

   3)任何一个字符串的长度都可以通过object.length输出。

    注意:字符串变量在创建之后就不能再赋值,除非在后面通过+运算符连接增加。

    把一个数据类型(NULL和undefined除外)数值,布尔型,对象,字符串都可以通过toString()方法转换成字符串。这个方法可以通过传入数字基数来改变进制。 一个通用的函数是String()函数,如果是NULL和 undefined,则原样返回,其他类型按toString()方法返回。

   4)object类型:创建自定义对象:  var o = new Object();

    Object对象有一些通用的属性。具体查看文档。

  4.位操作符:

   1)按位非: var num = 25 ; var num2 = ~num1 ; 

      按位非的本质:操作时的负值-1。  

   2)按位与: var result = 25 & 1 ;

   3) 按位或: var result = 25 | 1 ;

   4)按位异或: var reslut = 25 ^ 1 ;

   5)左移: var oldValue = 5 ;

       var newValue = oldValue << 5 ;

   6)右移: >> 

   5)无符号右移: >>>

  5.布尔操作符

    1)逻辑非:!

      如果是一个对象,返回false;

      如果是一个空字符串,返回true;

      如果是一个非空字符串,返回false;

      如果是数值0,返回true;

      如果是任意非0,包括Infinity,返回false;

      如果是null,返回true;

      如果是NaN,返回true;

      如果是undefined,返回true。

     2)逻辑与:&&

      注意:逻辑与操作可以应用与任何类型的操作数,如果有一个操作数不是布尔值的情况,遵循以下规则:

      如果第一个操作数是对象,则返回第二个操作数。

      如果第二个数是对象,在第一个操作数求值结果是true的情况下返回该对象。

      如果两个操作时都是对象,则返回第二个对象。

      如果有一个操作数是NULL,则返回NULL。

      如果有一个操作数是NaN,则返回NaN。

      如果有一个操作数是undefined,则返回undefined。

      逻辑与属于短路操作,意思就是当逻辑判断的时候第一个判断为false的时候就不在去判断第二个了。

    3)逻辑或:||

      如果第一个操作数是对象,则返回第一个操作数。

      如果第一个操作数的求值结果为false,则返回第二个操作数。

      如果两个操作数都是对象,则返回第一个操作数。

      如果两个操作数都是null,则返回null。

      如果两个操作数都NaN,则返回null。

      如果两个操作数都undefined,则返回undefined。

      逻辑或属于短路操作,意思就是当逻辑判断的时候第一个判断为true的时候就不在去判断第二个了。

      注意:我们可以通过这个逻辑或的行为避免为变量赋null或undefined值。例如:

      var myObject = preferredObject || backupObject ;

      如果前者是null,它的值返回给myObejct,否则返回后者。

      

转载于:https://www.cnblogs.com/yitianxi/p/5046650.html

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

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

相关文章

java 代码重用需要注意的事项_程序员笔记|编写高性能的Java代码需要注意的4个问题...

一、并发无法创建新的本机线程......问题1&#xff1a;Java的中创建一个线程消耗多少内存&#xff1f;每个线程有独自的栈内存&#xff0c;共享堆内存问题2&#xff1a;一台机器可以创建多少线程&#xff1f;CPU&#xff0c;内存&#xff0c;操作系统&#xff0c;JVM&#xff0…

java vbs_VBS基础篇 - vbscript Dictionary对象

Dictionary是存储数据键和项目对的对象&#xff0c;其主要属性有Count、Item、Key&#xff0c;主要方法有Add、Exists、Items、Keys、Remove、RemoveAll。创建Dictionary对象定义并创建Dictionary对象&#xff0c;使用CreateObject创建并返回自动化对象的引用Dim DicSet Dic C…

java integer最大值_五分钟学会java中的基础类型封装类

在刚刚学习java的时候&#xff0c;老师不止一次的说过java是一种面向对象的语言&#xff0c;万物皆对象。对于java中的基础数据类型&#xff0c;由于为了符合java中面向对象的特点&#xff0c;同样也有其封装类。这篇文章对其有一个认识。一、基本认识其实在jdk1.5之前&#xf…

hadoop 单节点安装

http://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-common/SingleCluster.html ,一&#xff0c;.安装hdfs1&#xff0c;hadoop-env.sh修改java_home2&#xff0c;core-site加入1,注意使用主机名映射2,端口使用&#xff1a;80203&#xff0c;缓存目录&#xff0…

web.xml文件位于web项目的目录结构中的_看完这篇,别人的开源项目结构应该能看懂了...

我为什么要写这篇近来&#xff0c;和不少初学Spring或Spring Boot的小伙伴私信交流了关于项目目录结构划分和代码分层的问题。很多小伙伴表示网上下载下来的开源项目看不懂&#xff0c;项目结构和代码分层看得很蒙&#xff0c;不知道应该以一个什么样的思路去学习和吸收别人的项…

06-CABasicAnimation基础核心动画

06-CABasicAnimation基础核心动画 核心动画只作用在层上面. 动画的本质是改图层的某一个属性. CABasicAnimation *anim [CABasicAnimation animation]; 图层有哪些属性,这里才能写哪些属性. anim.keyPath "transform.scale"; anim.toValue 0.5; 告诉动画完成的时候…

java 异常 理解_java异常理解(1)

JAVA异常处理机制1引子try…catch…finally恐怕是大家再熟悉不过的语句了&#xff0c;而且感觉用起来也是很简单&#xff0c;逻辑上似乎也是很容易理解。不过&#xff0c;我亲自体验的“教训”告诉我&#xff0c;这个东西可不是想象中的那么简单、听话。不信&#xff1f;那你看…

python turtle 绘图速度用函数会快吗_有趣的Python turtle绘图

专 题 Feature Story 16 \ China Science & Technology Education 文 _ 毛京宇&#xff0f;北京师范大学第三附属中学 魏云靖&#xff0f;北京市师达中学 有趣的 Python turtle 绘图  Python turtle 的发展 Python 中的 turtle 模块受启发于在欧美有 着广泛基础且历史悠久…

网络导通概率的研究

最近老师给了一个题目&#xff0c;说是研究一个正常矩阵任意概率置点概率下&#xff0c;双向导通&#xff08;x,y&#xff09;的概率&#xff08;要求有自然边界条件&#xff0c;也就是可以从0->length-1&#xff09;&#xff0c;用代码敲了一下demo&#xff0c;结果发现有个…

在java中字符流怎么复制_Java 使用字符流拷贝数据

使用字符流拷贝数据时&#xff0c;需要注意在文件末尾处的数据&#xff0c;因为最后一次读取的长度不会刚好与数组input长度相同&#xff0c;所以需要引入新的变量来存储每次读取的长度。import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundExcep…

mysql workbench中文设置_使用Workbench完成流体压力渗透分析

“之前的案例&#xff0c;APDL Showcase3里使用到了流体压力渗透载荷。有朋友读到以后&#xff0c;希望能在Workbench里实现这一功能。有需求就有动力&#xff0c;我们来试一试。 ”01—结果展示先看计算结果&#xff1a;(为了截图方便将模型旋转了90度)该案例为轴对称模型&…

总结下用Vue.js和webpack遇到的问题

这段时间用vue.jswebpack做一个单页应用的demo&#xff0c;第一次尝试模块化&#xff0c;技术水平有限&#xff0c;学习不够深入&#xff0c;总是遇到各种问题&#xff0c;所谓前事不忘后事之师&#xff0c;so记录下。 1.ES6匿名函数里面this值 结合webpack&#xff0c;使用Bab…

java+session+存在哪_JAVA中Session

会话状态的维持是开发Web应用所必须面对的问题&#xff0c;有多种方法可以来解决这个问题&#xff0c;如使用Cookies&#xff0c;hidden类型的表单域&#xff0c;或直接把状态信息加到URL中等&#xff0c;还有Servlet本身提供了一个HttpSession接口来支持会话状态的维持&#x…

ddns客户端_DDNS哪家最方便?试试看Mikrotik的ROS!

没有固定IP的情况下&#xff0c;想要提供外网访问&#xff0c;那么DDNS是必不可少的一个设置。DDNS&#xff08;Dynamic Domain Name Server&#xff0c;动态域名服务&#xff09;是将用户的动态IP地址映射到一个固定的域名解析服务。需要注意的是&#xff0c;不是域名是动态的…

手机网页里的模态对话框

今日帮朋友写了一个手机网页里用的模态对话框&#xff0c;防止自己日后忘记&#xff0c;所以mark一下。原理很简单&#xff0c;当弹出了模态对话框的时候&#xff0c;就是touchmove事件进行监听&#xff0c;如果是对话框的touchmove事件&#xff0c;就允许拖动&#xff0c;其他…

python最好用的画图工具_python Matplotlib.plot 超好用的画图技巧,总有一条用得到!...

低阶通用模板 import numpy as np import matplotlib.pyplot as plt # 数据准备 xnp.linspace(0,10,num30) ynp.sin(x) znp.cos(x) # 设置画布大小 plt.figure(figsize(6, 3)) # plot 画x与y和x与z的关系图 plt.plot(x,y,labelsin(x),colorred, linewidth1,markero,markersize3…

java join使用实例_Java多线程中关于join方法的使用实例解析

先上代码新建一个thread,代码如下:package com.thread.test;public class mythread extends thread {private string name;public mythread(string name) {this.name name;}overridepublic void run() {for (int i 0; i < 100; i) {system.out.println(name"["i…

iptables禁止端口和开放端口

1、关闭所有的 INPUT FORWARD OUTPUT 只对某些端口开放。 下面是命令实现&#xff1a; iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP 再用命令 iptables -L -n 查看 是否设置好&#xff0c; 好看到全部 DROP 了 这样的设置好了&#xff0c;我们只…

python中级程序员是什么水准_程序员进阶:一篇搞懂Python中级应用

异常处理&#xff1a;try-except 异常即是一个事件&#xff0c;该事件会在程序执行过程中发生&#xff0c;影响了程序的正常执行。一般情况下&#xff0c;在Python无法正常处理程序时就会发生一个异常。 异常是Python对象&#xff0c;表示一个错误。当Python脚本发生异常时我们…

python做excel表格代码_[宜配屋]听图阁

安装两个库&#xff1a;pip install xlrd、pip install xlwt1.python读excel——xlrd2.python写excel——xlwt1.读excel数据&#xff0c;包括日期等数据#codingutf-8import xlrdimport datetimefrom datetime import datedef read_excel():#打开文件wb xlrd.open_workbook(rte…