JavaScript的引入方式
方式一:直接写在HTML中,嵌套在script中
<script>
........
</script>
方式二:导入式
<script src="tsets.js"></script>
JS基本数据类型
JavaScript有五种基本数据类型
1.Number
2.String
3.Boolean
4.Null 值仅有:null,针对尚未存在的对象
5.Undefined 值仅有:undefined 未定义
#######NaN:not a number属于Number的一种,其他类型转Number失败时为该值
<script>
var x; # JS是弱变量类型,均用var声明变量。
x = 12;
y = 12;
x = 15;
alert(x);
console.log(x);
console.log(y);
var name = "cunzhang", age = 28;
// myFirstName="刘" # 单行注释// 多行注释/* */
// MyFirstName="刘"
function f() { # function关键字声明函数
console.log(123)
}
console.log(true + 1); # 类型转换
console.log(false + 1);
console.log("hello" + 2);
console.log("hello" + true);
console.log(2 + true);
console.log(parseInt(6.9234454));
//NAN: not a number,属于Number的一种
console.log(parseInt("hello")); //NAN
console.log(parseInt("123")); //123
console.log(parseInt("123abc"));//123
console.log(parseInt("abc1234"));//NAN
//typeof :区分基本数据类型,对引用数据类型仅返回object
console.log(typeof 123);
console.log(typeof "hello");
console.log(typeof true);
console.log(typeof null);
console.log(typeof undefined);
console.log(typeof [12, 3, 4]);
console.log(typeof {"name": "123"});
# 区分: ++i --i i++ i--
var i = 10;
i++;
console.log(i)
console.log(i++)
console.log(++i)
var n = NaN;
console.log(n > 5);//
console.log(n < 5);//
console.log(n == 5);//
console.log(n == NaN);//NAN只要参与比较,布尔值一定是false,除非!=
console.log(n != NaN);
逻辑运算符&&,||,! 判断是否相等==
console.log("hello" && 4)
if ("hello" && 4) {
}
console.log(2 == 2);
console.log("2" == 2);
console.log(2 === "2")
console.log(3 > 20);
console.log(3 > "20");
console.log("3" > "28")
</script>
JS创建函数
<script>
// 函数的创建方式一
function f(x,y) {
alert(123);
return x+y;
}
console.log(f(23,5678));
function foo(name,age) {
console.log("hello"+name)
}
// 用对象:函数的创建方式二
var obj=new Function("name","console.log(\"hello\"+name)")
obj("武大");
console.log(foo.length)
// 函数的调用
function add(x,y,z) {
return x+y+z
}
console.log(add(1,2,3,4,5,6));
console.log(add(1,2));
console.log(add("hello","world"));
# 面试题
function f(x,y) {
return x+y
}
var f=1;
var b=2;
f(f,b) # 报错 f 被覆盖
function f() {
console.log(arguments);
return a+b
}
f(1,2,45,6,7,78);
function ADD() {
var sum=0;
for (var i=0;i<arguments.length;i++){
sum+=arguments[i]
}
return sum
}
console.log(ADD(1,2))
# 匿名函数
var func = function(arg){
alert(arg)
};
func("hello");
(function(arg){
alert(arg)
})("YUAN")
</script>
JS控制语句
<script>
// ------ if else
var name="alex";
if (name=="lijie")
{
alert("俗气")
}
else if(name=="zhichao")
{
alert("洋气")
}
else{
alert("this is ALEX!")
}
// ----- switch
var week="Monday";
var week=3;
switch (week){
case "Monday" :alert("星期一");break;
case "Tuesday":alert("星期二");break;
case 3:alert("星期三");break;
case 4:alert("星期四");break;
case 5:alert("星期五");break;
case 6:alert("星期六");break;
case 7:alert("星期日");break;
default:alert("nothing");
}
//循环 for while
for(var i=0; i<10; i++){
document.write("welcome"+i+"<br>")
}
var attr=[111,222,333];
for (var i=0;i<attr.length;i++){
document.write(i);
document.write("<br>");
document.write(attr[i]);
document.write("<br>");
}
for (var i in attr){
document.write(i);
document.write("<br>");
document.write(attr[i]);
document.write("<br>");
}
var eles_P=document.getElementsByTagName("p");
console.log(eles_P);
// for (var i in eles_P){
// console.log(i)
// }
for (var i=0;i<eles_P.length;i++){
console.log(i);
console.log(eles_P[i]);
}
while 循环
var x=0;
var i=1;
while (i<=100){
x+=i;
i++;
}
console.log(x)
for 循环实现
var sum=0;
for (var i=0;i<101;i++){
sum+=i;
}
console.log(sum)
异常
try{
console.log(123);
throw Error("define error")
}
catch(e) {
console.log(e)
}
finally {
console.log("finally")
}
</script>
JS中的对象
<script>
//创建字符串对象两种方式
var str1="hello";
var str2=new String("hello2");
console.log(typeof str1);
console.log(typeof str2);
//字符串的属性
console.log(str1.length);
// 字符串的方法
//编排方法
console.log(str1.italics()); // <i>hello</i>
console.log(str1.bold()); // <i>hello</i>
console.log(str1.anchor()); // <i>hello</i>
查询字符串索引
var str="welcome to the world of JS!";
var str2=str.indexOf("l");
var str3=str.lastIndexOf("l");
alert(str2);
//结果为2
alert(str3);
//结果为18
// substr substring
console.log(str1.substr(1,3));
console.log(str1.substring(1,3));
console.log(str1.slice(1,4));
console.log(str1.slice(-3,-1))
//-------------------------------Array-----------------------------
// //创建方式
var arr1=[1,"hello",[11,2],{"name":"Yuan"}];
var arr2=new Array(3);
var arr3=new Array(1,"world",true,[1,2,3]);
console.log(typeof arr1);
console.log(typeof arr2);
console.log(typeof arr3);
// 注意: var arr4=new Array(10) 10是size
console.log(arr1.length);
// Array对象的方法
// join方法
var arr5=[1,2,3,4,"1234"];
var ret=arr5.join("**");
console.log(ret);
console.log(typeof ret)
toString()
var ret2=arr1.toString();
console.log(ret2);
console.log(typeof ret2);
concat()
var arr5=[1,2,3];
var ret3=arr5.concat([5,66]);
console.log(ret3);
console.log(typeof ret3);
// reverse
var arr6=[23,45,37,88];
var arr6=[10,45,100,88];
console.log(arr6.reverse());
console.log(arr6.sort()) ; //按第一个元素排序:10,45,88,100
function f(a,b) {
if(a>b){
return 4
}
else if(a<b){
return -4
}
else {
return 0
}
}
function f2(a,b) {
return a-b
}
console.log(arr6.sort(f2))
// push pop:栈操作
var arr7=[1,2,3];
arr7.push([7,8,0]);
arr7.push("hello",5);
console.log(arr7);
console.log(arr7.length);
console.log(arr7.pop());
console.log(arr7.pop());
console.log(arr7.length);
// shift unshift: 栈操作
var arr8=[4,5,6];
arr8.unshift([11,222]);
arr8.unshift(true,"yes");//[true,"yes",[11,22],4,5,6]
arr8.shift();//["yes",[11,22],4,5,6]
console.log(arr8);
console.log(arr8.length)
</script>
window对象提供的方法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
// window对象的方法
//alert 提示
window.alert("hello")
//confirm 让用户确认
var ret=window.confirm("hello Yuan");
console.log(ret);
// prompt 让用户输入信息
var ret2=window.prompt("hello....")
console.log(ret2)
// open("http://www.baidu.com")
setInterval(f,1000);
function f(){
console.log(666)
}
</script>
</body>
</html>
简单定时器
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
#id1{
width: 200px;
height: 50px;
}
</style>
</head>
<body>
<input type="text" id="id1" onclick="begin()"> # 绑定事件
<button onclick="end()">停止</button>
<script>
function showTime() {
var current_time=new Date().toLocaleString();
var ele=document.getElementById("id1")
ele.value=current_time
}
var clock1;
function begin() {
if(clock1==undefined){
showTime();
clock1=setInterval(showTime,1000)
}
}
function end() {
clearInterval(clock1);
clock1=undefined
}
</script>
</body>
</html>
JS的DOM对象提供的方法:
// 通过:id
document.getElementById()
// 通过:class名
document.getElementsByClassName()
// 通过:标签
document.getElementsByTagName()
// 通过:属性
document.getElementsByName()
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div class="div1">
<p name="littleP" class="p1">hello p</p>
<div class="div2">hello div
<div>div3</div>
<a href="">click</a>
</div>
<span>span</span>
</div>
<span>spanspanspanspan</span>
<div>hhhhh</div>
<script>
var ele=document.getElementById();
var ele=document.getElementsByClassName("p1")[0];
console.log(ele);
console.log(ele.nodeName);
console.log(ele.nodeType);
console.log(ele.nodeValue);
console.log(ele.innerHTML);
ele.innerHTML="hello world";
var p_ele=ele.parentNode;
console.log(p_ele.nodeName);
var b_ele=ele.nextSibling;
console.log(b_ele.nodeName);
var b_ele2=ele.nextElementSibling;
console.log(b_ele2.nodeName);
console.log(b_ele2.innerHTML);
var ele3=document.getElementsByClassName("div1")[0];
console.log(ele3.children[1].children);
eg:
var ele4=document.getElementsByName("littleP")[0];
var ele5=ele4.nextElementSibling;
console.log(ele5.innerHTML);
console.log(ele5.innerText);
ele5.innerHTML="<h1>YUAN</h1>";
//局部查找仅getElementsByClassName和getElementsByTagName两种方法
var ele6=document.getElementsByClassName("div1")[0];
var ele7=ele6.getElementsByTagName("span");
console.log(ele7[0].innerHTML)
</script>
</body>
</html>
2405

被折叠的 条评论
为什么被折叠?



