ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] ## 1.标识符 #### 1.1什么是标识符? ~~~ 变量,函数,属性的名字,或者函数的参数。 ~~~ #### 1.2标识符的命名规则(牢记) ~~~ a.由字母,数字,下划线(_)或美元符号($)组成 b.不能以数字开头 c.不能使用关键字,保留字作为标示符 d.不能包含算术运算符,或特殊字符(#,etc) ~~~ ## 2.变量 从编程角度讲,JavaScript变量是存储数据值的容器。 使用var关键字进行声明,使用等于号进取赋值 > 变量可以先声明,再赋值,也可以声明的同时赋值 > ~~~ var a=10; ~~~ #### 2.1全局变量:在函数外声明的变量 #### 2.2 局部变量:在函数内部声明的变量 ## 3.数据类型 #### 3.1原始类型:number,string,boolean,undefined,null * 可以使用typeof操作符来识别基本类型(`注意只能识别基本类型`) ~~~ null 1.null值表示一个空对象 2.如果定义的变量准备在将来用来保存对象,那么最好将改变量初始化null而不是其他值 ~~~ #### 3.2 引用数据类型:array,object,function > array ~~~ //向数组的末尾添加值 arr[arr.length]=5; ~~~ > object ~~~ //声明对象 var wa = { name:”wa”, age:20 } //读取变量的属性 console.log(wa.name); ~~~ > function ~~~ //定义:封装特点功能的代码块 //声明函数 function a(){ console.log(“hello world”) } //调用函数 a(); ~~~ > 声明提前 ~~~ 在正式执行脚本之前,将所有var声明的变量,提前预读到(当前作用域的)顶部,集中声明创建。 然后再开始执行程序。 ***赋值留在本地。 例如: console.log(a); //undefined var a=10; ~~~ ## 4.数据类型转换(注意) #### 4.1强制转换 ~~~ String,Boolean-->number 任意-->数字:Number(); Number(true) //1; Number(false) //0; //只能识别纯数值的字符串 var a = "20"; var b = "hello world"; console.log(Number(a));// 20; console.log(Number(b)); //NaN ~~~ #### 4.2自动转换 1.算数计算中,数据都默认转为数字,再计算,不能转为数字则为NaN ~~~ Boolean类型:true-->1 false-->0 eg: var a=1; var b=true; var c = "hello world"; console.log(a+b); //2 console.log(a-c); //NaN ~~~ 2.特殊+运算中,碰到字符串,+就变为字符串拼接 ~~~ 另一个不是字符串的数据,被自动转为字符串 比较运算(>,<,>=,<=,==,!=)中的自动转换: 默认将所有类型转为数字再比较 将两个值做比较-->返回值:true、false ~~~ #### 4.3强制转换(必须注意) > 1. 任意-->数字:3个API *a.特点:只能识别纯数字的字符串* ~~~ Number(x) eg: var a ="20"; console.log(Number(a)) //只能识别这样的字符串 ~~~ *b. 将字符串转为数字:2个API* * parseInt(str): * 从第一个字符开始依次读取每个数字,只要碰上第一个非数字字符就停止,自动跳过开头的空字符 * **不识别小数点** > Tip:何时使用:将字符串转为整数时 ~~~ var width="20px"; console.log(Number(width)) //NaN console.log(parseInt(width)) //20 ~~~ parseFloat(str):用法同parseInt > 比较Number()和parseInt() ~~~ var b=true; console.log(Number(b)) //1 console.log(parseInt(String(b))) //NaN ~~~ > 2. 任意类型-->字符串:2个API ~~~ x.toString(); x不是undefined或null时,才可用 String(x) 3.任意类型-->Boolean: Boolean(x) 只有5个值转为false: "" NaN undefined null 0 其余都转为true ~~~ ## 5.运算符和表达式(注意) #### 5.1比较运算:将两个值做比较-->返回值:true、false ~~~ >,<,>=,<=,==,!= ~~~ > Tip: ***比较运算中: > a. 默认将所有类型转为数字再比较 > **特殊情况 NaN:NaN不等于,不大于,不小于任何值(包括自己) NaN和任何数据做!=比较时,始终返回true isNaN(n):本意是判断一个值是否是NaN** #### 5.2逻辑运算:将多个关系运算综合起来,得出最终结论,返回值:true、false ~~~ && || ! ~~~ #### 5.3三目运算(需记) ~~~ var a=(10>4)?10:4; console.log(a);//输出:10 ~~~ ## 6.递增和递减 #### 6.1递增 > a++和++a; 1.单独使用a都会加一 2.在表达式中使用 * 前加加,a自增后运算 * 后加价,a先运算后自增 #### 6.1递减 与递增同理