-->变量的定义

  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. 51Nod 不重叠的线段(贪心)

    X轴上有N条线段,每条线段有1个起点S和终点E.最多能够选出多少条互不重叠的线段.(注:起点或终点重叠,不算重叠). 例如:[1 5][2 3][3 6],可以选[2 3][3 6],这2条线段互不重 ...

  2. 【Git 五】TortoiseGit中SSH密钥的配置方法

    注意:我用的 TortoiseGit 版本是 2.6 的. 一.找到安装目录下的 bin 目录 二.点击 puttygen.exe 三.点击 Generate 生成完毕之后,将 public key ...

  3. 洛谷3833 [SHOI2012]魔法树

    SHOI2012 D2T3 题目描述 Harry Potter 新学了一种魔法:可以让改变树上的果子个数.满心欢喜的他找到了一个巨大的果树,来试验他的新法术. 这棵果树共有N个节点,其中节点0是根节点 ...

  4. MySql系列表之间的关系

    foreign key 快速理解foreign key   员工信息表有三个字段:工号  姓名  部门 公司有3个部门,但是有1个亿的员工,那意味着部门这个字段需要重复存储,部门名字越长,越浪费 数据 ...

  5. NetHogs---按进程或程序实时统计网络带宽使用率。

    NetHogs是一个开源的命令行工具(类似于Linux的top命令),用来按进程或程序实时统计网络带宽使用率. 来自NetHogs项目网站: NetHogs是一个小型的net top工具,不像大多数工 ...

  6. 洛谷 P2015 二叉苹果树 && caioj1107 树形动态规划(TreeDP)2:二叉苹果树

    这道题一开始是按照caioj上面的方法写的 (1)存储二叉树用结构体,记录左儿子和右儿子 (2)把边上的权值转化到点上,离根远的点上 (3)用记忆化搜索,枚举左右节点分别有多少个点,去递归 这种写法有 ...

  7. 在Windows上调整SGA大小遭遇ora-27100、ora-27102错误的处理方法

    今天早上去一公司合作伙伴那里,协助处理他们某客户的数据库性能问题,那个库是Oracle 10.2.0.1的,前台业务系统是政府某机构查询系统,碰到的问题是首页展示很慢,与之相关的SQL语句查询结果须要 ...

  8. PHP开发环境&amp;MySQL下载安装及配置流程

    PHP开发环境&MySQL下载安装及配置流程 因工作须要,从0開始学PHP,前几天看完视频教程后開始搞开发环境,到今天才好.这里把安装配置流程梳理一下分享出来. 一.概述 要搭建一个开发环境无 ...

  9. HDU 4372 Count the Buildings 组合数学

    题意:有n个点上可能有楼房,从前面可以看到x栋楼,从后面可以看到y栋,问楼的位置有多少种可能. 印象中好像做过这个题,

  10. Huawei设备配置系统时钟

    系统时钟是设备上的系统时间戳.由于地域的不同,用户可以根据当地规定设置系统时钟.用户必须正确设置系统时钟以确保其与其他设备保持同步.华为设备出厂时默认采用了协调世界时(UTC),但是没有配置时区所有在 ...