慕课前端入门-js语法

1. js简介

  • js是脚本语言
  • js是事件驱动的
  • js是独立平台的

2.注释

//单行注释
/* 多行注释*/

3.js的标示符

3.1 什么是标示符

变量、函数、属性的名字,或者函数的参数

3.2 标示符的命名规则

  1. 由字母、数字、_或$组成
  2. 不能以数字开头
  3. 不能适用关键字,保留字作为标示符

3.3 js的变量是松散类型

松散类型:可以用来保存任何类型的数据。即每个变量仅仅是一个用于保存值的占位符而已。
变量声明:使用var操作符。省略var声明的变量是全部变量

//直接赋值
var a=1;
//先声明,再赋值
var b;
b=2;
//一次声明多个变量
var c=3,d="hello",e;

4. 简单数据类型

简单数据类型:undefined、null、boolean、number、string
复杂数据类型:object

4.1检测变量类型typeof

typeof的返回值有Undefined、Null、Boolean、Number、String、Object

typeof 变量
typeof(变量)

4.2 undefined未定义

var a;

一个没有值的变量,就是undefined。
undefined派生自null,所以undefined==null返回的结果是true。

4.3 null 空对象指针

var a=null;//值为 null(空), 但类型为对象

4.4 number整数和浮点数

非数值NaN

NaN:即非数值(Not a Number)是一个特殊的数值。
isNaN(n):检测n是否是非数值,返回值是boolean

console.log(18-"abd"); //NaN
console.log(isNa(18)); //false
console.log(isNan("19")); //false isNan()对接收的变量,会先尝试转换为数值,再检测

说明:

  1. 任何涉及NaN的操作,都会返回NaN
  2. NaN与任何值都不相等,包括NaN本身

数值转换

Number("16");
Number("abc");//NaN
parseInt("28px");//28
parseInt("0xf",16);//15
parseFloat("12.34.56");//12.35
parseFloat("0xf");//0

parseInt

  1. 会忽略字符串前面的空格,直至找到第一个非空格字符
  2. 转换空字符串返回NaN
  3. 这个函数提供第2个参数:转换时使用的进制
parseFloat
  1. 从第一个字符开始解析每个字符,直至遇见一个无效的浮点数为止。即只有第一个小数点有效
  2. 始终都会忽略前导的0

4.5 String

字符串由双引号或单引号成对包裹。

//将变量转换成字符串。返回值是str的一个副本。参数可以是数值、布尔值、对象和字符串
a.toString();
//注意:在不知道参数是不是null或undefined的情况下,还可以使用String()函数。它能够将任何类型的值转换为字符串
String(a);

4.6 boolean

类型转换:

  1. 除0之外的所有数字,转换为布尔类型都为true
  2. 除""之外的所有字符,转换为布尔类型都为true
  3. null和undefined转换为布尔类型为false
```#js Boolean(0); //false Boolean(1); //true Boolean(""); //false Boolean(" "); //true Boolean(null); //false Boolean(undefined); //false ```

5. 表达式

表达式是将同类型的数据(),用运算符号按一定的规则连接起来的,有意义的式子。
操作符的分类:算术操作符、逻辑操作符、负值操作符、比较操作符、三元操作符。

5.1 算术操作符

/*
+ - * / % 递增 递减
左递增:先返回递增之后的值
右递增:先返回原来的值,再返回递增之后的值
*/
x1=20,x2=30;
x3= --x1 + x2--;//x3=19+30=49
x2; //29 

5.2 赋值操作符

简单赋值:=
复合赋值:+= -= *= /= %=
如果包含字符串,+就是连接符

a=5
a%=3; //a=2

5.3 比较连接符

/*
>
< 
>= 
<= 
== 相等,只比较值是否相等
!= 不相等,比较值是否不相等
=== 全等,比较值的同时,比较数据类型,是否相等
!== 不全等,比较值的同时,比较数据类型是否不相等
null == undefined:undefined派生于null,所以值相等
*/
###      5.4 三元操作符
```#js
条件?代码1: 代码2;

可替代简单的if语句,如果条件成立,执行代码1,否则执行代码2

5.5 逻辑操作符

&&与

  1. 当操作布尔值的时候,就返回布尔值
  2. 在有一个操作数不是布尔值时,与不一定返回布尔值,此时它将遵循以下条件:
    1. 如果第一个操作数隐式类型转换为true,则返回第二个操作数 "hello" && 30 -> 30
    2. 如果第一个操作数隐式类型转换为false,则返回第一个操作数。0 && 88 -> 0
    3. 当前面的操作数隐式类型转换为true时,如果有一个操作数是null,则返回null。null && 0-> null
    4. 当前面的操作数隐式类型转换为true时,如果有一个操作数是NaN,则返回NaN。NaN && 0-> NaN
    5. 当前面的操作数隐式类型转换为true时,如果有一个操作数是Undefined,则返回Undefined。Undefined && 0-> Undefined
|| 或
  1. 当操作布尔值的时候,就返回布尔值
  2. 在有一个操作数不是布尔值时,逻辑或就不一定返回布尔值,此时它遵循以下规则:
    1. 2个都是操作数,如果第一个操作数隐私类型转换为true,则返回第一个操作数。"hello" || 30 -> "hello"
    2. 2个都是操作数,如果第一个操作数隐式类型转换为false,则返回第二个操作数,依此类推。"" || 30 -> 30
非 无论操作数是什么数据类型,逻辑非都会返回一个布尔值 !!"" -> false; !!"blue"; -> true
posted on 2020-09-10 08:22  singleSpace  阅读(175)  评论(0编辑  收藏  举报