JavaScript
基本语法
语句结尾可加 可不加 ;,看项目要求。
输入输出:
<script> //文档输出内容 document.write('标题') document.write('<h1>标题</h1>') //控制台输出给程序员 console.log('早上好') //页面弹出警示对话框 alert('警示框') //输入框 prompt('请输入')//两个框按先后顺序出现 </script>
变量:
//声明变量 let age = 19, name = '田祥' //赋值 name = '田志祥' //age = 18 document.write(age, name)
数据类型
可通过typeof 运算符可以返回被检测的数据类型。它支持两种语法形式:
-
作为运算符:typeof x(常用的写法)
-
函数形式:typeof (x)
有括号和没有括号,得到的结果是一样的。
数组 Number
let arr = [10, 20, 30] let name = ['天香', '田志祥', '田祥'] document.write(arr[0], name[1]) document.write(arr.length)
字符串 String
通过单引号('')、双引号("")或反引号()包裹的数据都叫字符串,单引号和双引号没有本质上的区别,推荐使用单引号。
let name = '小明' // 使用单引号 let gender = "男" // 使用双引号 let goods =`小米` //使用反引号 let tel = '123456' // 看上去是数字,但是引号包裹了就是字符串 let str = '' //这种情况叫空字符串
注意事项: 1.无论单引号或是双引号必须成对使用。 2.单引号/双引号可以互相嵌套,但是不以自已嵌套自已(口诀:外双内单,或者外单内双)。 3.必要时可以使用转义符\,输出单引号或双引号。
字符串拼接
+运算符可以实现字符串的拼接。
数字相加,字符相连
document.write('我叫'+'田志祥') // 我叫田志祥 let uname ='田志祥' let act ='行大运' document.write(uname + act) // 刘德华行大运 document.write(1 + 2) // 3
布尔 Boolean
肯定的数据用true,表示否定的数据用 false。
未定义 Undefined
只声明变量,不赋值的情况下,变量的默认值为undefined。
let age // 声明变量但是未赋值 document.write(age) // 输出 undefined
我们开发中经常声明一个变量,等待传送过来的数据。如果我们不知道这个数据是否传递过来,此时我们可以通过检测这个变量是不是undefined(一般很少直接为某个变量赋值为undefined),就判断用户是否有数据传递过来。
空值 Null
null 仅仅是一个代表“无”、“空”或“值未知”的特殊值
let obj = null console.log(obj) // null
undefined 表示没有赋值,null 表示赋值了,但是内容为空
console.log(undefined + 1);//NaN表未知 console.log(null + 1);//1
当变量里面要存放的是一个对象时,但对象还没创建好,可以先给个null代替。
类型转换
JavaScript是弱数据类型 例如:使用表单、prompt 获取过来的数据默认是字符串类型的,此时就不能直接简单的进行加法运算。
隐式转换
-
+号两边只要有一个是字符串,都会把另外一个转成字符串
-
除了+以外的算术运算符比如:- * / 等都会把数据转成数字类型缺点:
-
+号作为正号解析可以转换成数字型
显性转换
Number(数据)转成数字类型,如果字符串内容里有非数字,转换失败时结果为NaN(Not a Number)即不是一个数字(NaN也是number类型的数据,代表非数字)。
parselnt(数据)只保留整数(不四舍五入),parseFloat(数据)可保留小数(有单位忽略单位,如:parseInt("12px")//12)。
String(数据) 将值转为字符串。
Boolean(数据) 将值转为布尔值(0 , "" , null , undefined 均为false)。
运算符
和C语言学的预算符基本相同。
需要注意的是:
let i = 1 console.log(++i + i++ + i);//7
console.log(2 == '2');//true 发生了隐形转换 console.log(2 === '2');//false 看是否全等(类型和数值) console.log(2 != '2');//false console.log(2 !== '2');//true console.log(NaN === NaN);//false
-
NaN不等于任何人包括他自己。
-
判断相等建议===。
-
字符串比较ASCLL值,按字符顺序依次比较;汉字比较拼音。
console.log(true || false);//true
预算符优先级:
判断
1、if分支语句
2、三元运算符 条件?满足条件的代码:不满足条件的代码
3、switch语句 例子:
let num1 = +prompt('请您输入第一个数字:') let num2 = +prompt('请您输入第二个数字:') let sp = prompt('请您输入 +-*/ 其中一个:') switch (sp) { case'+': alert('两个数的加法操作是${num1 + num2}') break case'-': alert('两个数的减法操作是${num1 - num2}') break case'*': alert('两个数的乘法操作是${num1 * num2}') break case '/': alert('两个数的除法操作是${num1 / num2}') break default: alert('不正确') }
1.除了空字符串(''),所有字符串都为真(里面有空格也为正' ')。
2.判断语句下就一个运算符,也建议加上{}。
循环
按之前C语言算法的基础上,用JavaScript语法即可。
1、while循环
2、for循环
for(;;) 无限循环
数组操作
样例:
let arr = [2, 0,6,1,77,9,54,3,78,7] // 1、声明新的空的数组 let newArr =[] // 2.遍历旧数组 for (let i = 0; i < arr.length; i++) { if (arr[i] >= 10) { // 3.满足条件追加给新的数组 newArr.push(arr[i]) } } //4.输出新的数组 console.log(newArr)
push()和pop()
push(): 可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。
pop():数组末尾移除最后一项,减少数组的 length 值,然后返回移除的项。
注意:pop()里面没有参数,及时有参数,也是删除最后一项。
shift() 和 unshift()
shift():删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined 。
unshift:将参数添加到原数组开头,并返回数组的长度 。
sort()
按升序排列数组项——即最小的值位于最前面,最大的值排在最后面。
sort()方法比较的是字符串
reverse()
反转数组项的顺序。
concat()
将参数添加到原数组中。
参考链接:http://t.csdnimg.cn/Lw6EG
函数
函数定义
JavaScript 使用关键字 function 定义函数,函数可以通过声明定义,也可以是一个表达式。
函数提升
提升应用在变量的声明与函数的声明。
因此,函数可以在声明之前调用:
a(5); function a(y) { return y * y; }
使用表达式定义函数时无法提升
杂知识点
1.${}是JavaScript中的模板字符串语法(有时替代+连接),用于在字符串中插入动态的变量或表达式 http://t.csdnimg.cn/r3HUD