-->变量的定义

  1.取得并使用值是所有程序设计中的要点
  2.JS中的变量是没有类型的,在JS中只有值才持有类型,变量所持有的是其对应值的类型。
  3.变量的取名要符合标识符的规则:
      (1)一个JavaScript标识符必须以字母、下划线(_)或者美元符号($)开头
      (2)不能以数字开头
      (3)不能使用关键字
      (4)标识符一般都要采用驼峰命名法:首字母小写,每个单词的开头字母大写,其余字母小写

-->变量的声明

    var a; 
               (1)使用关键字var,用var关键字声明的变量,如果没有初始赋值,则其值为 undefined
       (2)ECMAscript的变量是松散型的,即可以用来保存任何类型的值
       (3)我们也可以一次声明多个变量。
-->变量的初始化 =变量的声明 +变量的赋值
             var b=1;
-->JS中的数据类型分为基本数据类型和引用数据类型
           一、六种基本数据类型 :
      boolen 布尔值 ,返回类型:ture 和false
      null 一个表明null值的特殊关键字
      undefined 变量为定义时的属性
      number 表示数字
      String 表示字数串
      Symbol(在ECMAScript6中新添加的类型)

二、引用数据类型

      数组
      函数
      object

typeof运算符

      语法 typeof a or typeof (a)
      描述:
      类型         结果
      Undefined       "undefined"
      Null          "object"
      Boolean        ”boolean"
      Number        "number"
      String         "string"
      Symbol        (ECMAScript 6 新增) "symbol"
      函数对象        "function"
      任何其他对象      "object"
   注意:
    typeof null === "object"; // true
    正确的返回结果应该是 "null" ,但这个 bug 由来已久,在 javascript 中已经存在了将近二十年,也许永远也不会修复,因为这牵涉到太多的 Web 系统, 修复它会产生更多的 bug,会令许多系统无法正常工作。
算术运算符:

算术运算符使用数值(字面量或者变量)作为操作数并返回一个数值.标准的算术运算符就是加减乘除(+  -  *  /  %)。

特殊要注意的是,除零会产生Infinity  typeof infinity 返回类型是number

  1.自增:a++的值等于原变量的值
                ++a的值等于新值(自增后的值)
  2.自减  同理

3.一元负值符(-)              返回操作数的负值

4.一元正值符(+)             如果操作数不是number则试图将其转换为number

5.指数运算符(**)            计算底数的指数次方

注意:

              对字符串进行+运算时,本质是进行的字符串拼接操作

  字符串运算符

             连接操作符(+)连接两个字符串值相连接,返回另一个字符串,它是两个操作数串的结合    “A” +"B" = AB

逻辑运算符

逻辑运算符常用于布尔(逻辑)值之间; 当操作数都是布尔值时,返回值也是布尔值。 不过实际上&&和||返回的是一个特定的操作数的值,所以当它用于非布尔值的时候,返回值就可能是非布尔值

逻辑与 (&&)                             &&用于布尔值时,当操作数都为true时返回true;否则返回false.

逻辑或 (||)                                 ||用于布尔值时,当任何一个操作数为true则返回true;如果操作数都是false则返回false。

逻辑非 (!)                                 !expr(逻辑非) 如果操作数能够转换为true则返回false;否则返回true。

赋值运算符

一个赋值运算符就是将它右边操作数的值赋给它左边的操作数。最简单的赋值运算符是等于(=),它将右边的操作数值赋给左边的操作数。那么 x = y 就是将 y 的值赋给 x

复合赋值操作符

加法赋值       x += y     x = x + y

减法赋值       x -= y      x = x - y

乘法赋值       x *= y     x = x * y

除法赋值       x /= y      x = x / y

求余赋值    x %= y   x = x % y

比较运算符

通过关系运算符可以比较两个值之间的大小关系,

如果关系成立它会返回true,如果关系不成立则返回false

  > 大于号    >= 大于等于

< 小于号       <= 小于等于

    ==  ===       三等号不会做自动类型转换  双等号会做自动类型转换

    !=  !==

位操作符

在计算机中数值都以二进制补码形式存储和运算。

   原码:是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。

  反码:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

  补码:正数的补码与其原码相同;负数的补码等于其反码+1。

9       原码                 反码                    补码 +1

00001001         11110110             11110111

8位无符号的二进制可以代表的整数范围:0~255

8位有符号的二进制可以代表的整数范围:-128~127

JavaScript笔记(2)的更多相关文章

  1. [Effective JavaScript 笔记] 第4条:原始类型优于封闭对象

    js有5种原始值类型:布尔值.数字.字符串.null和undefined. 用typeof检测一下: typeof true; //"boolean" typeof 2; //&q ...

  2. [Effective JavaScript 笔记] 第5条:避免对混合类型使用==运算符

    “1.0e0”=={valueOf:function(){return true;}} 是值是多少? 这两个完全不同的值使用==运算符是相等的.为什么呢?请看<[Effective JavaSc ...

  3. [Effective JavaScript 笔记]第3章:使用函数--个人总结

    前言 这一章把平时会用到,但不会深究的知识点,分开细化地讲解了.里面很多内容在高3等基础内容里,也有很多讲到.但由于本身书籍的篇幅较大,很容易忽视对应的小知识点.这章里的许多小提示都很有帮助,特别是在 ...

  4. [Effective JavaScript 笔记]第27条:使用闭包而不是字符串来封装代码

    函数是一种将代码作为数据结构存储的便利方式,代码之后可以被执行.这使得富有表现力的高阶函数抽象如map和forEach成为可能.它也是js异步I/O方法的核心.与此同时,也可以将代码表示为字符串的形式 ...

  5. [Effective JavaScript 笔记]第28条:不要信赖函数对象的toString方法

    js函数有一个非凡的特性,即将其源代码重现为字符串的能力. (function(x){ return x+1 }).toString();//"function (x){ return x+ ...

  6. 从头开始学JavaScript 笔记(一)——基础中的基础

    原文:从头开始学JavaScript 笔记(一)--基础中的基础 概要:javascript的组成. 各个组成部分的作用 . 一.javascript的组成   javascript   ECMASc ...

  7. 【原】javascript笔记之Array方法forEach&map&filter&some&every&reduce&reduceRight

    做前端有多年了,看过不少技术文章,学了新的技术,但更新迭代快的大前端,庞大的知识库,很多学过就忘记了,特别在项目紧急的条件下,哪怕心中隐隐约约有学过一个方法,但会下意识的使用旧的方法去解决,多年前ES ...

  8. JavaScript笔记目录

    JavaScript笔记目录 一.JavaScript简介 二.在HTML中使用JavaScript ...持续更新中,敬请期待

  9. 蛋糕仙人的javascript笔记

    蛋糕仙人的javascript笔记:https://www.w3cschool.cn/kesyi/kesyi-nqej24rv.html

  10. JavaScript笔记(第一章,第二章)

    JavaScript笔记(第一章,第二章) 第一章: <meta http-equiv="Content-Type" content="text/html; cha ...

随机推荐

  1. Java 异常的捕获与处理详解(二)

    (一).throws关键字 throws关键字主要是在定义上使用的,表示的是此方法中不进行异常处理,而交给被调用处处理. 例如: class MyMath { public int div(int x ...

  2. ECNUOJ 2144 抗震机械制造

    抗震机械制造 Time Limit:1000MS Memory Limit:65536KBTotal Submit:312 Accepted:78 Description  为了应付可能到来的地震,E ...

  3. Map和Collection详解

    Collection     -----List                -----LinkedList    非同步                 ----ArrayList      非同 ...

  4. 洛谷 P2839 畅通工程

    P2839 畅通工程 题目描述 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连, ...

  5. struts2文件上传需要注意的

    ① 必须封装三个字段:文件.文件类型.文件名,而且这三个字段的名字的前面几个字母是一样的 如: private File upload; private String uploadContentTyp ...

  6. ArcGIS api for javascript——加入两个动态地图

    描述 这个示例表现如何加两个动态地图到一个地图.动态服务按用户缩放或平移服务器每次绘制的地图,ArcGISDynamicMapServiceLayer表示ArcGIS JavaScript API动态 ...

  7. UINavigationBar的系统渲染方式

    昨天想手工实现一下类知乎日报的Navigation Bar的动态颜色改变,但不管怎么设置Navigation Bar的 backgroundColor barTintColor alpha參数都达不到 ...

  8. 生成不重复的随机数对(C/C++)

    1 #include <stdio.h> #include <algorithm> #include <stdlib.h> #include <time.h& ...

  9. Atcoder Grand Contest 107 A Biscuits

    A - Biscuits Time limit : 2sec / Memory limit : 256MB Score : 200 points Problem Statement There are ...

  10. IDEA设置注释模板最佳实践

    效果 在方法上输入/**,然后按tab键,生成的效果如下 配置步骤 1. 在Live Templates中添加模板组,命名随意,主要是为了存放自定义的模板,方便管理 2. 在模板组下添加一个模板,具体 ...