1.ECMA 欧洲计算机制造商协会

2.";"的作用

  • 代码后的;当压缩代码时可以用于压缩代码,有效的间隔开代码。

3.数据类型有 undefined,null,boolean,string,number,object

4.typeof操作符

  • 检测给定变量的类型,那检测函数会返回什么

5.boolean

  • 可以对任何数据类型的值调用Boolean()函数
  • ECMAScript中所有类型的值都有与这两个boolean值相对应的值
  • string : 任何非空字符串(true) ----- " "(false)
  • number : 任何非零数字值(true) ----- 0和NaN(false)
  • object :任何对象 (true)---- null (false)
  • undefined: 不适用 ---- undefined(flase)

6.null 和undefined的区别,

  • null: 空对象指针(car=null typeof car 为object)
  • undefined: 没有被定义的变量
  • 无论什么情况都没有必要把一个变量的值显示为undefined,但是只要意在保存对象的变量还没有真正保存为对象,就有必要让该变量保存null值
  • 但是 if(null == undefined) //true (undefined派生自null)

7.number :

  • 8进制数以0开头, 16进制数都要使用0x开头
  • 浮点数值(必须包含一个小数点,并且小数点后面必须有一位数字) 由于浮点数值占用的内存空间是整数值的两倍,所以当数值为类似于1.0的时候,ECMA会自动将浮点数值转化为整数值
  • e的用法 var a=3.12e5 //312000
  • 为什么0.1+0.2 != 0.3
  • NaN :1.任何设计NaN的操作都会返回NaN 2.NaN于任何值都不相等,包括他自己
  • isNaN()函数,作用即名字意思,放入参数后他会先尝试转化为数值,如 “10” 或者boolean值 。他还适用于对象,会自己调用对象的value()函数判断返回值,和调用tostring()方法
  • 三个把数值转化非数值转化成数值的函数 ,Number(),parseInt(),parseFloat(),可以转化字符型数字和boolean值

8.string:

字符字面量

  • \n(换行) \t(制表) \b(退格 \r(回车)\f(进纸) \(斜杠) '(单引号) "(双引号) '' hei '' (表示字符'hei')
  • \xnn(以十六进制的代码nn表示的一个字符,n为0-f ,\x41表示A
  • \unnn(以十六进制代码nnn表示的一个unicode字符 \u03a3表示一个希腊字符)
  • 这个字面量都被作为一个字符在解析
  • var text="this \u030a3" texi.length为5个字符

字符串的特点

  • 字符串一旦创建,他的值就不能更改
  • var lang="java" lang=lang+"scrpit"
  • 实现过程:先创建容纳10个字符的新字符串,然后填充"java","script",然后销毁这两个字符串

转化为字符串

  • tostring()方法,每个字符串都有自己的tostring方法,但是null和undefined没有这个方法,当数值调用tostring方法的时候可以,可以加入参数,如,tostring(16),先转化为16进制的数值字符串
  • string()方法,如果值有tostring()方法,调用tostring()。当不知道要转换的值是不是null和undefined的时候,可以用string方法,null转化为"null" ,undefined转化为"undefined"
  • 所以string(1)的时候,其实是在调用tostring()。

9.object类型

  • var obj = object();
  • EMCAScript中的对象其实就是一组数据和功能的集合
  • object类型是所有他的实例的基础,object类型所具有的任何属性和方法也同样存在于更具体的对象中
  • object每个实例都具有下列的属性和方法
    • constructor:保存着用于创建当前对象的函数。对于上面的例子,构造函数(curstructor)就是object()。

      + hasOwnProperty(PropertyName):用于检测给定的属性在当前对象实例中(而不是原型中)是否存在,其中,作为参数的属性名(PropertyName)必须以字符串的形式指定(obj.hasOwnProperty("name")).
    • isPrototypeOf(object):用于检测传入的对象是否是当前对象的原型
    • propertyIsEnumberable(PropertyName):用于给定的属性是否能够使用for-in语句来枚举,与hasOwnProperty()方法一样,作为参数的属性名必须以字符串形式指定
    • toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应。
    • toString():返回对象的字符串表示
    • valueof() :返回对象的字符串,数值,或者布尔值。通常与toString()方法的返回值相同

10.操作符

一元操作符(只能操作一个值): ++ --

位操作符

  • 位操作符用于在最基本的层次上
  • ECMAscript中所有的数值都以IEEE-754 64位格式存储,但是位操作符并不直接操作64位的值。

而是,先将64位的值转化为32位,然后进行操作,在讲32位的值转化位64位,由于64位的存储格式是透明的,因此整个过程就像只存在32位的整数一样

  • 数值18:00000000000000000000000000010010
  • 负数同样用以二进制补码来存储,但是使用的格式是二进制补码
  • 数值-18:
  • 先求得18的二进制码
  • 然后求18二进制码的反码(将0转换成1,1转换成0)

还有一些关于位操作符的知识就不在这里概述了

布尔操作符

在一门编程语言中,布尔操作符的重要性堪比相等操作符,如果没有测试两个值关系的能力,那么诸如if。。。else和循环之类的语句就不会有用武之地。

  • 布尔操作符一共有三个:非(not),与(and),或(or)

    • 逻辑非操作符(!)
    • 逻辑与操作符(&&)
    • 逻辑操作符(||)

乘性操作符

  • 表示两个数的乘积
  • 如果成绩超过了ECMAScript数值的表示范围,则返回Infinity(存放正无穷大的数值)或者-Infinity(存放负无穷大的数值)
  • 如果操作的不是一个数值,则会在后台先调用Number()看能不能将其转换为数值。

除,加,减操作符规则类似

关系操作符( <, >,<=,>=四种)

  • 这几个操作符都返回布尔值
  • 当比较字符串的时候,会比较字符串的第一个字符的编码值的大小
  • (var a="23" < "3")//true 因为"2"的字符编码小于"3"
  • (var b= "Bas"< "apache" ) //true 因为大写字母的字符编码全部小于小写的字符编码
  • (var c= "3" <2)//false 字符比较中有数字的时候,字符会被先转换成数字

相等操作符

  • 相等(== )和不相等(!=)

    • 相等和不相等这两个操作符都会强制转型,然后比较他们的相等性
    • 如果一个操作符是对象,另一个不是,则调用对象的valueOf()方法,然后比较
    • 如果是两个对象,则比较他们是不是指向同一个对象。
  • 全等和不全等

条件操作符(三元运算符)

赋值操作符

  • 复合操作符:(*=,/=,+=,-=,<<=,>>=)

11.语句

  • if语句

  • do-while语句

    • 后测试循环语句,循环体内的代码至少循环一次
    • do { i++ } while (i<10)
  • while语句

    • while(){}
  • for语句

  • for-in语句

    • 精准的迭代语句,通常用来枚举对象的属性
    • for(var name in window) {document.write(name)}
    • 遇到null和undeined会报错,但是在es5中被修正,对这种情况不再执行循环体
  • label语句

    • 使用label语句可以在代码中添加标签,以便将来使用
    • label通常配合其他循环语句一起使用
    • var num=0;
      outermost:
      for(var i=0;i<10;i++){
      for(var j=0;j<10;j++){
      if(i == 5 && j == 5){
      break outermost;
      }
      num++; //55
      }
      }
  • with语句

    • 将代码的作用域设置到一个特定的对象中(一般不使用)
  • swich语句

    • switch(参数){
      case value : 执行体 ;
      break;
      case value :执行体;
      break;
      default :执行体;
      }
    • 虽然js中switch语句借鉴了其他语言,但是这个语句在js中也有他自己的特色,他能够使用任何数据类型,而且case的值不一定是常数,还可以是表达式
    • switch("hello"){
      case "he"+"llo":alert(yes);
      break;
      case "hh"+"llo":alert(no);
      break;
      }
    • var num =25;
      switch(true){
      case num <0 : alert("小于0");
      break;
      case num >=0 && num<=10 :alert("在0和10之间");
      break;
      }

      这里之所以给switch语句传递表达式true,是因为每个case值都可以返回一个布尔值,这样,每个case都会按照顺序被执行,知道遇到default为止

12.函数

  • 严格模式对函数的限制:

    • 1.不能把函数和参数命名为eval和argument
    • 2.不能出现两个命名参数同名的情况
  • 理解参数
    • 与其他语言不同,js并不介意传递进多少个参数,因为js内部是用一个数组来表示的,函数接收到的始终是一个数组,而不关系数组里的参数
    • arguments对象:
      • arguments和数组很像,但是并不是Array的实例
      • arguments可以使用放括号语法访问它的每一个元素
      • arguments的值永远与对应命名参数的值保持同步
  • js中没有重载,但是,他却能同过arguments对象和其他的方法来实现重载的功能

《js高程》笔记总结一:基本概念(语法,数据类型,流程控制,函数)的更多相关文章

  1. Unit04: JavaScript 概述 、 JavaScript 基础语法 、 流程控制

    Unit04: JavaScript 概述 . JavaScript 基础语法 . 流程控制 my.js function f3() { alert("唐胜伟"); } demo1 ...

  2. Java基础语法(4)-流程控制

    title: Java基础语法(4)-流程控制 blog: CSDN data: Java学习路线及视频 1.程序流程控制 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定 ...

  3. 【Java基础】基本语法-程序流程控制

    基本语法-程序流程控制 程序流程控制 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块. 其流程控制方式采用结构化程序设计中规定的三种基本流程结构,即: 顺 ...

  4. Java基础语法与流程控制

    Java基础语法与流程控制 跟着狂神学Java的第二天O(∩_∩)O~,养成一个总结的习惯 志同道合的小伙伴可以一起学习狂神的视频 本节地址:https://www.kuangstudy.com/co ...

  5. Java基础语法02——流程控制

    流程控制:顺序结构.分支结构(if-else.switch-case).循环结构(for.while.do-while)

  6. Python之路【第一篇】:介绍、基本语法、流程控制

    一.python 简介 python 特点 Python是一种计算机程序设计语言.你可能已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合初学者的Basic语言,适合网 ...

  7. JS基本数据类型&流程控制

    JS基本数据类型 number     -----  数值 boolean    -----  布尔值 string     -----  字符串 [x,y] -------数组 undefined  ...

  8. php面试笔记(4)-php基础知识-流程控制

    本文是根据慕课网Jason老师的课程进行的PHP面试知识点总结和升华,如有侵权请联系我进行删除,email:guoyugygy@163.com 在面试中,考官往往喜欢基础扎实的面试者,而流程控制相关的 ...

  9. Java基本语法--程序流程控制

    流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块.流程控制方式采用结构化程序设计中规定的三种基本流程结构,即:顺序结构.分支结构.循环结构.本篇博客主要是对 ...

  10. 8、Python语法之流程控制

    一 引子 流程控制即控制流程,具体指控制程序的执行流程,而程序的执行流程分为三种结构:顺序结构(之前我们写的代码都是顺序结构).分支结构(用到if判断).循环结构(用到while与for) 二 分支结 ...

随机推荐

  1. 解决安装tensorflow-gpu失败:Command "python setup.py egg_info"failed with error code 10 in.....

    按照https://blog.csdn.net/shawroad88/article/details/82222811前几步安装. 又有新的报错如下: 再运行运行代码安装setuptools pip ...

  2. 观察者模式Vs发布订阅模式

    1)观察者模式 观察者模式通俗的讲就是我们平事件调用(click/change等等) 大家先看这个图片.我们被观察者Subject(监听某个事件)发生改变时,观察者Observer监听到没改变做出调整 ...

  3. nodejs攻略——第一章 配置

    nodejs这玩意吧,我也是心血来潮的学习,所以啊.看这篇文章之前请大家有以下技能,如果没有..我不确定你能看得懂,毕竟我文采水平实在有限. 前置技能要求: c#或java 熟练+ JavaScrip ...

  4. [译]Vulkan教程(25)描述符布局和buffer

    [译]Vulkan教程(25)描述符布局和buffer Descriptor layout and buffer 描述符布局和buffer Introduction 入门 We're now able ...

  5. 使用matplotlib.pyplot中plot()绘制折线图

    1.函数形式 plt.plot(x, y, format_string, **kwargs) x轴数据,y轴数据,format_string控制曲线的格式字串(format_string 由颜色字符, ...

  6. Emoji 映射编码

    Emoji官网:https://emojipedia.org/ Name   Unified DoCoMo KDDI Softbank Google Wechat   black sun with r ...

  7. JavaWeb问题记录——SessionIdGeneratorBase.createSecureRandom

    JavaWeb问题记录——SessionIdGeneratorBase.createSecureRandom 摘要:本文主要记录了在启动Tomcat时,出现的一个警告以及解决办法. 部分内容来自以下博 ...

  8. 零基础建站如何配置PHP运行环境 几种服务器环境配置的选择和方法

    上次给大家分享了小白建站如何选择虚拟空间及服务器,及购买域名的基础知识,这些是硬性要求,你的网站要想运行起来,硬件只是基础,真正的技术是软件,关于PHP软件开发技术,后面我们会慢慢的分享给大家,今天主 ...

  9. Spring Boot 2 配置服务器访问日志

    Tomcat控制台中看到的日志是服务器的日志,而服务器访问日志则是记录服务处理的请求信息. 开发环境:IntelliJ IDEA 2019.2.2Spring Boot版本:2.1.8 1.新建一个名 ...

  10. 在Ubuntu上安装Miniconda

    在Ubuntu上安装Miniconda Anaconda是一个开源的Python包管理器,而Miniconda则是轻量级的Anaconda 下载地址:https://docs.conda.io/en/ ...