三种使用JavaScript方式
1.内部javascript:使用< script>…< /script>标签
属性:
- charset(可选)字符集设置
- defer(可选执行循序) 值:defer
- src(可选)使用外部的js脚本文件
- type(必选)类型:值:text/javascript
<script type="text/javascript">
<--javaScript语言 -->
</script>
2.外部javascript
使用外部导入js会使代码更有序,更易于复用,且没有了脚本的混和,HTML也会更加容易读
<script type="text/javascript" src="my.js"></script>
3.内联javascript处理器
就是将js代码写入html代码中,如在html标签的时间中或超链接里
<button onclick="javaScript语言"></button>
<a href="javascript:alert('aa');alert('bb')"> 点击</a>
js基础语法
1.js的输出
js没有任何直接打印或输出的函数
要显示有以下几种方式
- window.alert()弹出警告框
- document.write()方法将内容写到html页面中
- innerHTML写入到HTML元素中
- console.loge()写入到阅览器控制台,不显示到页面中
2.变量
使用 var 声明变量,可同时声明并赋值
var name="zhangsan",age=25;
3.变量的命名规则和规范
- 不遵守会报错
- 由字母、数字、下划线、$符号组成,不能以数字开头
- 不能是关键字和保留字
- 区分大小写
- 不遵守不会报错
- 变量名必须有意义
- 遵守驼峰命名法。首字母小写
4.注释
-
单行注释
- 单行注释以//开头
-
多行注释
/*开头和 */结尾
5.数据类型
-
基本数据类型:
String(字符型)、Number(数字)、Boolean(布尔)、Null (对空)、Undefined(未定义)、Symbol(表示独一无二的值)
-
引用数据类型
Object(对象)、Array(数组)、Function(函数)
1.undefined和null的区别:
typeof undefined // undefined
typeof null // object
null === undefined // false
null == undefined // true
2.typeof 获取一个变量的类型
console.log(typeof a); //undefined 没有定义的变量
var a = 10; //整数
console.log(typeof a); //number
a = 3.14; //浮点数
console.log(typeof a); //number
//布尔类型:boolean: 值:true false
a = true;
console.log(typeof a); //boolean
//字符串:使用单引号或双引号都可以定义子符串
a = "Hello ...";
console.log(typeof a); //string
a = null;
console.log(typeof a); //object
//引用类型
var b = [10,20,30]; //数组的定义
console.log(typeof b); //数组对象object
console.log(b instanceof Array); //true 检查对象b是否是来源于Array
console.log(a instanceof Array); //false 检查对象a是否是来源于Array
var ob = new Object();
console.log(typeof ob); //object
var fn = function(){} //声明一个空函数
console.log(typeof fn); //function
3.整数数字类型的转换
整数进制的表示形式:
console.log(1.23e5); //1.23*10的5次方
console.log("整数进制的使用");
console.log(10); //10 十进制
console.log(0b10); //2 二进制
console.log(0o10); //8 八进制
console.log(0x10); //16 十六进制(0 1 2 3 4 5 6 7 8 9 a b c d e f)
toString 和 parseInt 方法转化:
console.log("===============十进制转成其他进制==============");
var num = 220;
console.log(num.toString(2)); //11011100 二进制
console.log(num.toString(8)); //334 八进制
console.log(num.toString(16)); //DC 十六进制
console.log("===============其他进制转成十进制==============");
console.log(parseInt('11011100',2)); //二进制转十进制
console.log(parseInt('334',8)); //八进制转十进制
console.log(parseInt('DC',16)); //十六进制转十进制
4.基本类型变量之间的赋值
变量之间的赋值,是指开辟一块新的内存空间,将变量值赋给
新变量保存到新开辟的内存里面;之后两个变量的值变动互不影响
5.引用类型变量之间的赋值
白能量之间的相互赋值,只是指针的交换,而并非将对象赋值一份给新的变量,对象依然还是一个,只是多了一个引用
6.类型转换
- 3种强制类型转换:
Boolean(value)、Number(value)、String(value)
- parseInt()和parseFloat()
参考示例:
//转换字符串类型
String(100 + 23) // 返回"123"
String(true) // 返回"true"
String(new Date())// 返回"Tue May 14 2019 11:06:28 GMT+0800 (中国标准时间 )"
String([10,20]) // 返回"10,20"
String(null) // 返回"null"
//转换数值类型
Number("3.14") // 返回 3.14
Number("3.14abc") //返回NaN
parseFloat("3.14")//返回 3.14
parseFloat("3.14abc")//返回 3.14
parseFloat("b3.14abc")//返回NaN
parseInt("3.14") //返回 3
parseInt("3.14abc")//返回 3
parseInt("b3.14abc")//返回NaN
常见类型转换:
原始值 | 转换为数字 | 转换为字符串 | 转换为布尔值 |
---|---|---|---|
false | 0 | “false” | false |
true | 1 | “true” | true |
0或"0" | 0 | “0” | fale |
1或"1" | 1 | “1” | true |
“000” | 0 | “000” | true |
NaN | NaN | “NaN” | fale |
“” | 0 | “” | fale |
“字串” | NaN | “字串” | true |
[ ] | 0 | “” | true |
[10,20,30] | NaN | “10,20,30” | true |
function(){} | NaN | “function(){}” | true |
{ } | NaN | “[object Object]” | true |
null | 0 | “null” | fale |
undefined | NaN | “undefined” | fale |
6 for in遍历
var ob = {“name”:“张三”,“age”:22,“sex”:“男”};
for(key in ob){
document.write(key+":"+ob[key]+"
");
}
var a = [10,20,30,40,50];
for(k in a){
document.write(k+":"+a[k]+"
");
}
7.js函数
函数定义:
-
使用function语句:
标准格式:
function 函数名( 参数){
函数体
return //可选
}
-
使用Function()构造函数(不常用)
var 函数名=new Function(“参数1”,“参数2”…“函数体”)
-
表达式中定义
var 函数名=function(参数){
函数体
}
-
匿名函数,函数自调用
(function () {
console.log(“Hello FunctionѺ”);
})();
<h1>定义myAvg函数,计算数组元素的平均值</h1>
<script>
function myAvg(a){
var sum=0;
for (const key in a) {
if (a.hasOwnProperty(key)) {
sum+= a[key];
}
}
return sum/a.length;
}
var a=[1,2,3,4,5];
document.write("var a=[1,2,3,4,5]"+'<br>')
document.write("myAvg(a)=");
document.write(myAvg(a));
</script>
<h1>定义函数mySum,求所有参数的和,参数可以不限个数</h1>
<script>
function mySum() {
var sum = 0;
for (var i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
document.write("mySum(1,2,3,4,5,)=");
document.write(mySum(1,2,3,4,5,));
</script>
js内置函数
escape() //字串编码
unescape() //字串反转码
*eval() //将参数字符串作为脚本代码来执行
*isNaN() // is not a number (不是一个数值)
*parseInt()
*parseFloat()
var url = "http://www.***.com/a.html?name=张三&age=20";
console.log(url);
url2 = escape(url);
console.log(url2);
console.log(unescape(url2));
console.log("--------------------");
var str = "var uname='zhangsan',age=20;";
eval(str); //将参数str字串当成js脚本程序执行
console.log(uname);
console.log(isNaN("10s"));
console.log(parseInt("34as4567dfg"));
在js语句块中添加标签:‘标签名’
document.write(’< br>’)