js语言特点(基于ES的语法):
** js的变量类型取决于值的类型 **
1.脚本语言
2.基于对象:
3.简单 :弱类型语言
4.跨平台:与操作系统无关,有一个ja引擎(运行环境),即可以运行js代码
5.嵌入式
js三个主要组成部分;
1.ECMA Script(核心)
2.DOM(文档对象模型)
3.BOM(浏览器对象模型)
js的基本结构:
1.内部引用:
<script type=" "></script>
js在html页面中的位置
1.放在head
2.放在body
输出方式:
1. alert():打印方式,在浏览器弹出警告框(先弹出)
2.console.log() 在控制台(在浏览器里F12下console中显示)
3. document.write() 直接在页面输出( 由 alert(),先弹出alert() 后,显示 )
输入方式:
var inputStr = prompt("请输入一串字符,当输入‘STOP’时停止","");
获取变量数据类型typeof()
语法:
console.log(typeof(i)); //typeof()括号中放指定想要知道的变量
* undefined不明数据类型:只有变量定义,无赋值
* unll 对象的值为null
js函数:
1. isNaN():判断?不是数字吗
翻译(is not a number)
for-in语句:
<script >
var array1=new Array();
array1[0]="张三";
array1[1]="李四";
for(index in array1){
console.log(array1 [index])
}
</script>
函数定义function:
第一种标准方式(常用):
function 函数名( [ 参数1, [ 参数2, [ 参数N ] ] ] ){
[ 语句组 ];
[ return [表达式] ];}
<script type="text/javascript">
function add(a,b){ //function 函数名( [ 参数1, [ 参数2, [ 参数N ] ] ] ){alert(a); alert(b); // [ 语句组 ];
return a+b; } //[ return [表达式] ];}
add(2+3);
var result=add(2,3);
console.log("result=",result);
</script>
第二种函数变量定义方式
var 变量名 = function( [ 参数1, [ 参数2, [ 参数N ] ] ], [ 函数体 ] );
<script>
//函数定义var add=function(value1,value2){return value1+value2;
<script type="text/javascript">
var add = function add(a,b){
return a+b;
}
var result=add(10,20);
alert(result);
</script>
两种方式区别:
第一种会生成全局函数,会产生函数声明提前现象。会代码顺序上看,还没有定义就可以使用
函数的调用:
<script type="text/javascript">
function print99(){
//F10一行一行走,F8运行到下一个断点,如果没有下一个断点直接跳出
for (var i=1;i<=9;i++) {
for(var j=1;j<=i;j++) {
document.write(i+"*"+j+"="+i*j+" ");
if (i==j) {
document.write("<br>
} } } }
</script>
</head>
<body>
<a href="javascript:print99();">点我调用</a>
</body>
数组:
1.var array1=new Array();
array1[0]="abc";
array1[1]="def";
console.log(array1[0]);
2.var array2=["aaa","bbb"];
console.log(array2[1]);
数组常用方法:
一、添加方法
1.push从后面向数组里追加
arr.push(input);
2.unshift从头向数组里添加
arr.unshift(input);
二、删除方法
//1.pop从后面向数组里删除
arr.pop(input);
//2.shift从头向数组里删除
//arr.shift(input);
三、数组转换成字符串
toString拼接成使用逗号分隔的字符串,不支持定制分隔符
var str=arr.toString();
console.log(str);
//join无参时默认逗号分隔,有参是,用指定分隔符进行分割
1.var str1=arr.join();
console.log("",str1);
2.var str2=arr.join(";");
console.log(str2);
四、 工具方法
1.concat连接
2.reverse反转
3.sort排序
4.slice截取(包括star 不包括end)
四工具方法的实例:
var arr =new Array(3);
arr[0]="aaa"
arr[1]="bbb"
arr[2]="ccc"
var arr_1 =new Array(3);
arr_1[0]="ddd"
arr_1[1]="eee"
arr_1[2]="fff"
//连接 var and=arr.concat(arr_1);
console.log(and);
//反转 var rev=arr.reverse(arr);
console.log(rev);
//slice截取 star2,end<6
var sli=and.slice(2,6);
console.log(sli);
String的内置对象:
1.charAt()返回指定索引处的字符
2.返回指定字符或字符串的第一个出现位置处的索引值,如果没找到返回负数
3.substring(start,stop) start-(stop-1),括号内为索引值
内置对象练习
var str="abdefgkhijklmn";
//1.charAt()返回指定索引处的字符
//console.log(str.charAt(3));
for (var i=0;i<=str.length;i++) {
console.log(str.charAt(i));
}
//2.返回指定字符或字符串的第一个出现位置处的索引值,
//如果没找到返回负数
console.log(str.indexOf("k"));
console.log(str.lastIndexOf("k"));
console.log(str.indexOf("p"));
//3.substring(start,stop) start-(stop-1),括号内为索引值
console.log(str.substring(5));
console.log(str.substring(1,5));
//4.split
var arr="chi;sheng;nan"
var ar=arr.split(";");
var a1=arr.split("");
console.log(ar);
console.log(a1);
数组练习:
//输入java成绩,把成绩存到数组里
var scores=new Array();
for (var i=1;i<=4;i++) { // 循环输入学生成绩
var score=prompt("请输入第"+i+"个学生的成绩","");
scores[i-1]=score; //存放到数组中
}
for (var i=0;i<scores.length;i++) { // 循环存放
console.log("学生成绩",scores[i]);
}
var变量数据类型说明:
var:定义变量(var的类型由等号右边的值决定,string类型用双引号)
var i;
console.log(typeof(i));//undefined 不明确数据类型
var j=1243.13;
console.log(typeof(j));//number
var k="hello";
console.log(typeof(k));//string
var i1='hello';
console.log(typeof(i1));//string
var i2=true;
console.log(typeof(i2));//boolean
var obj1=null;
console.log(typeof(obj1));//object
/* undefined:只有变量定义,没有赋值,
null:对象的值为null */