1. javascript第一阶段学习总结
一. 语法
- javascript中对换行/空格/缩进不敏感。
- JavaScript中所有字符均为英文半角。
- 最好一句占一行方便检查错误。
- 严格区分大小写。
- 每条语句后都加;(分号)。
- 在JavaScript中每一条语句都是发送给服务器的指令
二. 常见输出语句
- 在控制台输出
<script>
console.log("hello world");
</scipt>
- 在警告框中输出
<script>
alert("hello world");
</script>
- 在页面中输出
document.write("哈哈哈哈")
三.注释
1.多行注释
/* */
2.行注释
//
3.注释
// ctrl+/
四.字面量
1.字面量
直接量,在程序中能直接使用的内容
2.字符串
“ ” ’ ‘ 带有单引号或者双引号
3.数值
1.2.3.4.5…
1.1 1.2 1.3 …
-1. -2. -3. …
4.结果
true false /flag/
五. 变量
(一.)定义
1.定义变量
var 变量名
2.变量名
变量名=值
3.变量名的命名规则
- 首字符必须以_或$或字母开头
- 变量名可以包含:字母、数字、$和_
- 变量名不能使用关键字和保留字
- 区分大小写
4.JavaScript是一门弱类型语言:在定义变量时,不需要指定数据类型
5.变量的赋值,传递是值
(二.)应用
-
先定义,后赋值
-
定义同时即赋值
-
定义多个变量时,输出多个数据,多个数据之间使用逗号隔开
-
变量:内容可以被改变
-
变量重复赋值,覆盖
-
变量的定义和赋值,发生在内存中
六.数据类型。
数据分类
1.基本类型
数值类型(number):数字,小数,负数
字符串类型(string):"" ‘’ 字符串内容会原样输出 ‘’ 空字符串 ’ ’ 空格字符串
布尔类型:
null
undefined
2.引用类型
数据类型的检测:
typeof
console.log('5+3');
定义数值类型变量
var a=10;
定义字符串类型变量
var str='hello';
基本数据类型:
string: ‘’ " "
var str = "&(*&*(*&(&(3+5*5";
console.log(str);
number: 数值
null :空
引用(对象)类型:
Date Function RegExp Array Object
boolean:
布尔类型 true(真) false(假)
定义一个布尔类型
var isT = true;
var isM = false;
console.log(typeof isT); //boolean
undefined :未定义 变量定义了,但是未初始化
var num;
console.log(num); //undefined
JS是一门弱类型语言:
变量在定义时,不需要指定类型
变量的数据类型可变(取决于变量中保存什么类型数据)
&
&
七.运算符
运算符:做运算
根据操作数不同:一元(一目)运算符、二元(二目)运算符、三元(三目)运算符
根据功能不同,可以分为:
标题 1. 算术运算符:
+ - * / %(取余)
++:自增
--:自减
var a = 10;
a++;// a=a+1 自增
console.log(a);
var b=5;
b--;
console.log(b);
++和--的运算符前置和后置,对变量自身没有影响
运算符的前置和后置对变量自身没有影响,但是一旦出现在赋值语句中:
运算符前置:先运算,再赋值
var a=5;
var b=++a;//先运算,再赋值
console.log(a);
console.log(b);
运算符后置:先赋值,再运算
var a = 5;
var b = a++; //先赋值,再运算
var b=a+1;
注意:
+运算符两边只要有一个为字符串,则执行拼接操作,结果为:字符串类型
&
&
2. 比较(关系)运算符
一般情况下,比较运算的结果为:布尔类型
> < >= <= ==(等于) !=(不等于) ===(全等)
==和===的区别:
==只比较数值
===既比较数值又比较数据类型
比较运算
var a = 3 > 5;
var a=5>4;
var a = 5 == 3;
var a = 5 != 3;
var a = 5 >= 3;//只要有一个满足即可
var a = 5 >= 5;
var a = 1 <= 3;
console.log(a);
字符串类型比较,按照ASCII码比较(一位一位对比)
console.log('a' > "b");//本质是:ASCII码
&
&
3. 逻辑运算符
一般情况下,运算结果为:布尔类型
&&(逻辑与):并且
若两边的操作数均为真,则结果为真;其他情况均为假
||(逻辑或):或者
若两边的操作数有一个为真,则结果为真;若两边均为假,则结果为假
!(逻辑非):取反
var a = 5 >= 3 || 5 <= 9;
console.log(a);
var b = 3 >= 5;
console.log(!b);
4. 赋值运算符
= += -= *= /= %=
5. 条件运算符
条件运算符:三元运算符
表达式?结果1:结果2
运算规则:
若表达式为真,则运算结果为:结果1
若表达式为假,则运算结果为:结果2
var str = '我';
var s1 = '你';
console.log(str-s1);//NaN not a number 一种现象
var a = "hello" == "world" ? "hello" : "world";
console.log(a);
5 > '4' ? console.log('正确') : console.log('错误');
6.运算符的拓展
运算符的扩展:
算术运算符:
+:若运算符两边有一个为字符串,则执行拼接操作(结果为字符串类型)
比较运算符:
==
===
逻辑运算符:
若运算符两边的操作数不是布尔类型,则运算结果也不一定是布尔类型
&&:
若第一个操作数为真,则结果是第二个操作数
若第一个操作数为假,则结果是第一个操作数
||:
若第一个操作数为真,则结果为第一个(第二个不执行)
若第一个操作数为假,则结果为第二个
布尔类型扩展:
true: 1
在判断语句中:除了数字0,null,undefined和空字符串,其余数字均为真
false: 0
总结(在判断语句中):
false ,0,undefined ,null 和空字符串为假
其余都是真
alert('89'+100+1);
alert(89+100+'1');
隐式转换
console.log('10'-'5');
console.log('hello'==' hello');//false
console.log(''+1);//空字符串
布尔类型: true 1 false 0 自动转换
console.log(true + false);
var a;
'我和你' ? console.log('hello') : console.log('world');
逻辑运算符扩展:
var a=1&&false;//false
var a=0&&false;//0
var a=1&&0;//0
var a=1&&2;//2
var a=1&&'hello';
console.log(a);
var x = 0,
y = 0,
t;
t = x && ++y;//++y不执行
console.log(t); //0
console.log(y); //0
var a = 1 || 0;
var a=1||2;
var a=0||2;
var a=0||1;
console.log(a);
八.数据类型的转换
一.
数据类型转换:
number
string
boolean
-
number—>boolean 隐式转换 1—true 0–false
-
boolean—>number 隐式转换:true–>1 false–>0
-
string–>boolean
-
boolean–>string
1)拼接空字符串
2) toString() -
number—>string
1)拼接空字符串 2)toString()
-
string–>number 数值型字符串
parseInt() 转换为整数 parseFloat() 转换 var a = true; var b; //"true" // console.log(a,typeof a); // b = a + ''; // console.log(b, typeof b); // console.log(false + ''); b=a.toString(); console.log(b,typeof b); var num = 100; //"100" // var b = num + ''; var b=num.toString(); console.log(b,typeof b); var str="hello";//不能转换为数字 var str = '90'; //数值型字符串 // var b = str - "0"; // console.log(b); // var str='3.14'; var b = parseInt(str);