JavaSCript高级程序设计学习笔记 day3 基本概念

day 3 基本概念

语法、数据类型、流控制语句、理解函数

一、语法(需要遵守的规则)

  1. 区分大小写
  2. 标识符-变量、函数、属性、参数的取名规则(保留字不能为标识符)
    第一个字会必须是三选一,三是字母、下划线、美元符号,非第一个字符多了一个数字
    潜规则:采用驼峰命名 userName、doSomethingImportant
  3. 注释
    单行: //
    多行:/**/
  4. 严格模式
    可以应用行文件顶部或函数内
    function doSomething(){
    “use strict”
    }
  5. 语句
    分号代表一个语句的结束。不是必须添加,但是添加了对于代码性能和代码压缩有益。
    {}代码块

二、关键字和保留字(自留地)

已使用的
break do instanceof typeof case else new var catch finally return void continue for switch while function this with default throw with delete is try debugger(5版本新增)
未使用的
abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient implements protected volatile double import public
第5版非严格模式下的保留字比较小,如下:
class enum extends super const export import
第5版严格模式下的保留字,如下:
implements package public interface private static let protected yield

如果不小心用到会看到这样的报错:Identifier Expected

三、变量(弱类型 var)

  1. 在函数作用域中使用var定义的变量,函数结束时会销毁
    function test(){
    var message=‘hi’; //局部变量
    }
    test();
    alert(message); //错误
    ===
    function test(){
    message=‘hi’; //局部变量
    }
    test();
    alert(message); //正确,不推荐 ,严格模式下会报错,并且很难维护,特别是在es6应用比较广的现在,更不要用。
  2. 一次行定义多个变量写法
    var message='hi', found=false, age=29;

四 6个数据类型

1. 一个复杂5个简单

undefined、null、boolean、number、string,复杂 object

2. 两个特殊undefined和null,

首面undefined要注意的有,定义了变量没有赋值的变量;函数没有return 返回值默认是undefined。其次是null,typeof(a=null)返回是一object。null==underfined 结果是true.

3. 不单纯的number型

包含 整数和浮点数、可以存十进制、八进制和十六制

4.不熟悉的NaN(Not a Number 非数值)
  1. ECMAScript除于0是合法的得到NaN
  2. 任何数*0=0,任何数与NaN计算=NaN
  3. alert(NaN==NaN) //false
  4. isNaN()判断是否为非数值
alert(isNaN(NaN)) //true
alert(isNaN(10)) //false
alert(isNaN("10") //false 可以转换成10
alert(isNaN("bule") //true 不能㔹换
alert(isNaN(true) //false 可以转换成数值

  1. 3个数值转换函数
    Number()、parseInt()、parseFloat()
5. String 注意两种转方法

数值、布尔值可以用.toString()
null、undefined转你用String()

6.模糊的Object类型

ECMAScript中的对象其实就是一组数据和功能的集合。对象可以通过执行new操作符合跟要创建的对象类型的名称来创建。而创建Object类型的实例并为其添加属性和方法,就可以创创建自定义对象,如下所示:

var o= new Object();
这样创建对象可以带出Object类属性和方法,常用的有:

  1. toLocalString():返回对象的字符串表示,该字符串与执行环境的地区对应
  2. toString():返回对象的字符表示
  3. valueOf():返回对象的字符中、数值、或布尔值表示。通常与toString()方法的返回值相同。

五 操作符

3. 布尔操作符
  1. 逻辑非 !
alert(!false) //true
alert(!"blue") //false
alert(!0) // true
alert(!NaN) //true
alert(!"") //true
alert(!12345) //false

双感叹号与Boolean()功能相同

alert(!!"blue") //true
alert(!!) //false
alert(!!NaN) //false
alert(!!"") //false
alert(!!12345) //true

  1. 逻辑或 ||

赋值应用

myObject =preferedObject || backupObject
3. 逻辑与 &&

函数参数理解

ECMASCript 函数的参数与大数据其他语言中的函数参数有所不同,ECMAScript函数不介意传递进来多少个参数、也不在在乎传进来参数是什么数据类型。
实际上,在函数体内可以通过arguments对象来访问这个参数数组,从而获取转递给函数的每一个参数据。arguments[0]是第一个参数、arguments[1]是第二个参数,arguments.length是长度

小结

  1. ECMAScript中的基本数据类型包括Underfined、Null、Boolean、Number和String。
  2. 与其他语言不同,ECMAScript没有为整型和浮点数值分别定义不同的数据类型,Number类型可用于表示所有数值
  3. 严格模式为这门语言中容易出错的地方施加了限制
  4. ECMAScript提供了很多与C及其他类C语言中相同的基本操作符,包括算术操作符、布尔操作符、关系操作符、相等操作符及赋值操作符等。
  5. ECMAScript从其他语言中借鉴了很多流控制语句、例如if语句、for语句、switch语句等
EEMAScript中的函数与其他语言中的函数有诸多不同之处
  1. 无须指定函数的返回值,因为任何ECMAScript函数都可以在任何时候返回任何值。
  2. 实际上,未指定返回值的函数返回的是一个特殊的undefined值
  3. ECMACSript中也没有函数签名的概念,因为其函数参数是以一个包含零或多个值的数组的形式传递的。
  4. 可以向ECMAScript函数传递任意数量的参数,并且可以通过arguments对象来访问这些参数。
  5. 由于不存在函数签名特性,ECMAScript函数不能重载。

你可能感兴趣的:(前端,javascript)