前言
加油!在学一天
一、结构
网页弹窗
<script>
alert("代码");
</script>
页面内容
<script>
document.write("是我是我");
</script>
控制台内容:只开发人员那可见
<script>
console.log("是我是我");
</script>
二、
1.主体写入
<body>
<!-- 点击后出现onclick属性 -->
<button onclick="alert('diandiandian')">点我</button>
<!-- 点击后出现javas属性 -->
<a href="javascript:alert('okok')">在这</a>
</body>
2.可写入位置
- <script>标签中,一旦用于引入外部文件不可编写代码了,即使编写浏览器也会忽略,若需要则可以再创建一个新的标签用于编写代码。
- 写入外部文件中,可以在不同页面中使用,
3.基本语法
- 1)注释
多行注释:/**/
单行注释://
- 2)在js中严格区分大小写
- 3)每条都以;结尾。如果不写分号,浏览器会自动添加,但会消耗系统资源
- 4)会忽略多个空格和换行
4.字面量和变量
字面量:一些不可以改变的量,可以直接使用。
变量:可以用于保存字面量
声明变量
<script>
var a = 789;
a = 123;
a = 456;
console.log(a);
</script>
5.标识符
规则:
- 标志符中可以还有数字、字母、下划线、特殊字符,不可以以数字开头。
- 标识符不能是关键字和保留字。
- 一般采用驼峰命名法:首字母小写,其余单词开头字母大写例如:helloWord
6.字符串
数据类型☞字面量类型
6种:Srting字符串、Number数值、Boolean布尔、Null空值、Underfined未定义、Object对象。前五种为基本数据类型,最后为引用数据类型。
- Srting字符串:1)单引号双引号都可以,两者不可以混用。单引号中可以放双引号,反之不可。2)\转义例如\"标识一个双引号。\n换行,\t制表符。3)长度用lenght获取,空格也算是字符。
<script> var age = prompt('请输入年龄'); var str = '已经' + age + '岁了'; alert(str); </script>
- Number数值:不需要引号。可以使用运算符typeof 变量,检查类型并输出。js中表示最大值:Number.MAX_VALUE。infinty表示无穷大。NaN表示非数字
- Boolean布尔:只有false当0看,ture参与加法运算当1来看。
- Null空值:和数值相加还等于数值。
- Underfined未定义:和数字相加都为NaN
7.类型转化
7.1.转化为字符型
tostring
<script>
var num = 10;
var str = num.toString();
console.log(num);
console.log(typeof str);
</script>
string
<script>
var num = 10;
console.log(string(num));
console.log(typeof num);
</script>
+链接
<script>
var num = 10;
console.log(num + '');
console.log(typeof num);
</script>
7.2.转化为数字型
parseInt可以将字符型、字符串的转换为数字型,得到整数,浮点数取整数部分即可。对非字符串会现转换成为字符串。
<script>
var str = prompt("年龄");
console.log(parseInt(str));
console.log(parseInt('3.14'));
console.log(typeof str);
</script>
parseFlout取把一个字符串转化为浮点数
<script>
console.log(parseFloat('3.14'));
console.log(parseFloat('120px'));//会去掉单位
</script>
Number()函数:1.纯数字字符串直接转化2.若含有非数字内容转为NaN3.空字符串转化为0;4.布尔转数字ture转1,fluse转0;5.Null转为0
<script>
var a = '123';
a = Number(a);
console.log(a);
console.log(typeof a);
</script>
0x十六进制数字,8进制0开头,二进制0b开头。注意:070这种字符串,有些浏览器会当成八进制或者十进制,尽量避免使用。
7.3.转化boolean
转boolean数字型除了0、NULL和undefined以及空字符串、对象其余都是ture
<script>
var a = '123';
a = Boolean(a);
console.log(a);
console.log(typeof a);
</script>
8.运算符
1.二元运算符
+ - * / %都不会对原变量产生影响
+:1.两个值可做加法返回结果,2.两个字符串做加法会拼串返回字符串3.任何值和字符串做加法运算会转化为字符串,后拼串;4.任意数值类型加空串转为字符串,有浏览器自动完成。
<script>
var a = '123';
var result = typeof a;//返回值为字符串类型
result = 2 + 1 + a;
console.log("result=" + result);
</script>
其他运算都会转为Number,所以可以使用-、/、*转为Number类型,与Number()转换相同。
2.一元运算符
只需要一个操作数
1)
+正号:不会对数值产生任何影响;-符号:符号取反,对于Boolean会先转为数字后运算;
2)
自增(原变量值会改变):a++表达式的值为自增前的值a(即原值);++a=自增后的值(即新值)要注意输出c++的话需要在原址上加1、自减相同。
<script>
var a = 20;
var result = a++ + ++a + a;//20+22+22
console.log("result=" + result);
</script>
3.逻辑运算符
!非:
对一个值进行非运算,对boolean进行取反,非boolean值会先转化为Boolean值再取反。
&&与:
可以对符号两侧值都是只要有一个fluse就返回fluse,非boolean值会先转化为Boolean值运算但要先返回原值,如果两个值都为true,返回后面的值;如果两个值都为fluse,返回前面的值。
||或:
符号两侧值都是只要有一个ture就返回ture。非boolean值会先转化为Boolean值运算,若第一个值为ture则必然返回第二个值,如果第一个值为fluse直接返回第一个值,返回原值。
4.赋值运算符
=、+=、-=、*=、/=
5.关系运算符
关系成立则返回ture,不成立返回fluse
任何值和NaN做任何运算都是fluse
若果符号两侧的值都是字符串不会将其转换为数值,只会比较字符编码,一位一位进行比较注意在比较两个字符串类型的一定要转型。。
6.相等运算符
- 相等返回ture,否则fluse。==号,会做自动类型转换,转为相同类型后比较。
注意:undefined衍生自Null,两个运算为ture;NaN与任何值都不相等包括它本身,可以通过isNaN函数来判断。
- 不相等返回fluse,!=符号与相等相反。
- 全等===,不会做类型转换,若两个类型不同则直接返回fluse,null与undefined相等不全等。
- 不全等!==,类型不同则返回ture,不会做自动类型转换
7.条件运算符(三元)
条件表达式?语句1:语句2;
执行时首先对条件表达式进行求值,若为ture,执行语句1,返回结果;若为fluse,执行语句2,返回结果。
<script>
var a = 10;
var b = 1;
a > b ? alert('a') : alert('b');
</script>
<script>
var a = 10;
var b = 1;
var max = a > b ? a : b;
console.log(max);
</script>
8.优先级
优先级不清楚时,可以用括号改变优先级。
9.代码块
用{}代表一组语句也叫代码块,要么都执行要么都不执行。
10.if语句
与java大体相同
总结
学的挺好