-->变量的定义

  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. [NOI2012]随机数生成器 矩阵乘法

    Code: #include<cstdio> #include<algorithm> #include<iostream> #include<cstring& ...

  2. AWK行处理的用法实例

    第一节 awk的工作流程及基础用法 awk操作符会先检索文件的行信息,然后在行信息里找需要的内容. Awk的默认分割付是空格,awk '/模式/{print $1,$2}' file ##模式的位置可 ...

  3. caioj 1073 动态规划入门(三维一边推:最长公共子序列加强版(三串LCS))

    三维的与二维大同小异,看代码. #include<cstdio> #include<cstring> #include<algorithm> #define REP ...

  4. 洛谷—— P2419 [USACO08JAN]牛大赛Cow Contest

    https://www.luogu.org/problem/show?pid=2419 题目背景 [Usaco2008 Jan] 题目描述 N (1 ≤ N ≤ 100) cows, convenie ...

  5. [Recompose] Make Reusable React Props Streams with Lenses

    If you hard-code a stream of props to target a specific prop, it becomes impossible to reuse that st ...

  6. Spark技术内幕:Client,Master和Worker 通信源代码解析

    Spark的Cluster Manager能够有几种部署模式: Standlone Mesos YARN EC2 Local 在向集群提交计算任务后,系统的运算模型就是Driver Program定义 ...

  7. HDU4565 So Easy! 矩阵高速幂外加数学

    easy 个屁啊,一点都不easy,题目就是要求公式的值,但是要求公式在最后的取模前的值向上取整.再取模,无脑的先试了高速幂 double  fmod来做,结果发现是有问题的.这题要做肯定得凑整数,凑 ...

  8. thinkphp路由的作用

    thinkphp路由的作用 问题 请问一下什么是thinkPHP路由,路由有什么作用?谢谢 解答 网络访问地址从来都是映射访问的,最初是这样,主机名(电脑名称)=>ip地址(如局域网192.16 ...

  9. 80.简单搭建nodeJS服务,访问本地站点文件

    转自:https://blog.csdn.net/iteye_1217/article/details/82679843 搭建nodejs服务器步骤: 1.安装nodejs服务(从官网下载安装),no ...

  10. Linux常用的安全工具

    Linux常用的安全工具 "工欲善其事,必先利其器".作为一个合格的系统管理员,要应对可能发生的安全事件,掌握Linux下各种必须的安全工具是首要大事.本文主要介绍Linux上常用 ...