-->变量的定义

  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. bzoj 2259: [Oibh]新型计算机 最短路 建模

    Code: #include<cstdio> #include<cstring> #include<algorithm> #include<queue> ...

  2. centos7 安装 Python netsnmp模块

    由于模块的安装过程中有点艰难(其实挺简单,只是参照网上的教程很多都装不成功,花了很多时间...),所以记下来备忘. 先装一下python-devel 模块,执行命令 yum install pytho ...

  3. javascript面向对象编程,带你认识封装、继承和多态

    原文链接:点我 周末的时候深入的了解了下javascript的面向对象编程思想,收获颇丰,感觉对面向对象编程有了那么一丢丢的了解了~很开森 什么是面向对象编程 先上一张图,可以对面向对象有一个大致的了 ...

  4. 洛谷1414 又是毕业季II

    问题描述 彩排了一次,老师不太满意.当然啦,取每位同学的号数来找最大公约数显然不太合理.于是老师给每位同学评了一个能力值.于是现在问题变为,从n个学生中挑出k个人使得他们的默契程度(即能力值的最大公约 ...

  5. bzoj1615 麻烦的干草打包机 BFS

    Description Farmer John新买的干草打包机的内部结构大概算世界上最混乱的了,它不象普通的机器一样有明确的内部传动装置,而是,N (2 <= N <= 1050)个齿轮互 ...

  6. PHP -Casbin: 支持 ACL、RBAC、ABAC 多种模型的 PHP 权限管理框架

    PHP-Casbin 是一个用 PHP 语言打造的轻量级开源访问控制框架( https://github.com/php-casbin... ),目前在 GitHub 开源.PHP-Casbin 采用 ...

  7. python Web抓取(二)selenium模块的使用、对浏览器的按键操作及错误处理

    建议以下帖子: 教你在Windows上搭建Python+Selenium环境:https://blog.csdn.net/huilan_same/article/details/52888262 py ...

  8. 洛谷 P1156 垃圾陷阱 (01背包拓展)(好题!!)

    这真是一道好题目 学到了很多 一开始感觉吃或者不吃会有后效性 然后看到洛谷的题解,直接把这个有后效性的部分当作dp的维度和值 因为这个垃圾可以堆或者不堆,所以这个很像01背包, 但是加了非常多的限制条 ...

  9. Unity shader 代码高亮+提示

    Shader Unity Support This is Unity CG Shaders Support. It has code completion support and uses C/C++ ...

  10. 03016_DBCP连接池

    1.连接池概述 (1)用池来管理Connection,这样可以重复使用Connection: (2)有了池,所以我们就不用自己来创建Connection,而是通过池来获取Connection对象: ( ...