重学JavaScript ----- 基本概念[语法,变量,数据类型,语句,函数]

1.语法

这一部分与其他语言差别不大 例如 c++ java

  • 区分大小写:变量名中大小写严格区分 test 与 Test 是两个不同的变量

    var test, Test; //两者是完全不同的两个变量
    
  • 标识符 第一个字符必须是字母或 _ 或 $;其他字符可以是字母,下划线,美元符号,或者数字,遵循驼峰命名

  • 注释

     // var s = "test" 
     /* var s = "test" */
    两种注释方法都是可以的,只不过第一种是单行注释 ,第二种是多行注释
    
  • 严格模式 使用 ‘use strict’ 使用这种模式,代码会在严格模式下运行,减少错误

  • 语句 JavaScript 语句结尾的 ; 不是必须的,但还是建议将其添加上,一是方便自己他人阅读,二来也是防止出现一些捉摸不透的错误

2.变量

JavaScript变量是松散类型,也就是一个变量可以用来保存任何类型的数据。换句话说,每个变量仅仅是一个用于保存值得占位符而已

// JavaScript 支持直接初始化变量,因此在定义变量的同时就可以设置变量的值
var test = "test"

// 如果在声明变量之后不给变量赋值,那么变量的初始值就是 undefined
var name;
console.log(name)  //undefind

// 有一点需要注意的是,使用var 定义的变量将成为给定义该变量的作用域的局部函数。
// 也就是说如果在函数中定义一个变量,那么在函数执行完成退出之后,该变量也会被销毁
function fn () {
    var fnTest = 'test';
}
fn();
console.log(fnTest)// 报错
//在上面的例子中如果不适用var 来声明变量,那么该变量将会成为一个全局变量,那么即使在函数退出之后,变量也不会被销毁

3.数据类型

在 JavaScript中有五种基本数据类型(在es6中新增一种 symbol)分别是 Undefined Null String Number Boolean 还有一种复杂数据类型 Object

3.1 typeof操作符

​ 因为JavaScript的变量类型是松散的,所以需要有一种手段来检测给定变量的数据类型 typeof就是用来检测数据类型的操作符

  • ​ Undefined => undefined

  • ​ Number => number

  • ​ String => string

  • ​ Boolean => boolean

  • ​ Object | Null => Object

  • ​ Function => function

    值得注意的是 基本数据类型中的Null 与 Object 都会被typeof 判断为 object类型

3.2 Undefined

​ 如果一个变量只声明,并未赋值,则是undefined

3.3 Null

​ 如果一个变量时用来存储object 那么最好将其初始化为null

3.4 Boolean

​ 与c++中的 bool 并没有什么很大区别

​ 只需要记住 true 不一定是1 false 不一定是0

3.5 Number
##### 3.5.1 **字面量格式**

​ 为支持各种数据类型,js定义了不同的数值字面量格式

	var intNum = 55; //整数
	var octNum = 070 //八进制的56
    var hexNum = 0xA //十六进制的10
    //在进行算术运算是,所有的八进制与十六进制都会被转换为十进制数值
    var res = octNum + hexNum // 66
3.5.2 NaN

​ 表示一个特殊的数值(not a number),用来表示一个本来要返回数值的操作数未返回数值的情况

3.5.3 tip
//在js引擎中 0.1 + 0.2 = 3.0000000004  != 0.3
// 所以在es6中引入一个EpsiLon 标准 只要0.1 + 0.2 -0.3 小于该标准即可认定为0.1+0.2 = 0.3
0.1+0.2-0.3 < Number.EPSILON // true
3.6 String
// 在JavaScript中 字符串一旦创建,值不能修改,不能销毁
var s = "abc";
s[0] = "d";
console.log(s); // "abc"
//单独对其某一项进行修改无效 除非重建
s = "dbc";
console.log(s); //"dbc"null undefined 外都有toString方法,对于不清楚变量类型的变量可以使用String方法
1.如果值由toString 则调用该值的toString方法
2.如果是null 则返回"null"
3.如果是undefined 则返回 "undefined"
3.7 Object

对于object类型,只介绍一些基本属性方法

1. Constructor: 保存用于创建对象的函数
2. hasOwnProperty(propertyName):检查给定属性是否是存在与当前对象实例中,而不是实例原型中;
3. isPrototypeof(Object): 检查传入的对象是否存在于另一个对象的原型链上
4. toString: 返回对象的字符串表示
5. valueOf: 通常与toString 相同

4 函数

4.1 参数
在JavaScript中不介意传进多少参数。
在函数体中可以使用arguments对象来对传进的参数进行访问,使用length 来确定究竟传进了多少参数
特别注意,在JavaScript中arguments的长度是由实际传进的参数的个数决定,不是由函数定义时,命名参数的个数决定
修改arguments对象中的数据,对应的命名参数的值也会修改
4.2 没有重载

因为JavaScript是松散语言,所以不存在根据变量类型不同来重载函数,但是我们可以根据函数参数传入参数类型和数量做出不同反应

5 总结一下

5.1 基本数据类型与复杂类型

​ undefined null string number boolean Object

5.2 函数参数

​ 没有函数签名的概念,可以传任意多的参数,不能重载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值