原生js细节补习

本文介绍了JavaScript的基础语法,包括数据类型、对象定义、函数运用、事件处理等,并提供了多个实例帮助理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

js 输出:
使用 window.alert() 弹出警告框。
使用 document.write() 方法将内容写到 HTML 文档中。
使用 innerHTML 写入到 HTML 元素。
使用 console.log() 写入到浏览器的控制台。

for ... in 循环遍历数组。
js 数据类型:
var x; // x 为 undefined
var x = 5; // 现在 x 为数字 JavaScript 只有一种数字类型
var x = "John"; //为字符串
var x=true;
var y=false;

js 对象定义和对象调用:

var person = {name:"zhangsan",age:24,salary:20000,count:function () {
return $(this).get(0).name;//jq对象
//return this.name;//js 对象

}
}

document.write(person.name);
document.write(person.salary)
document.write(person["salary"]);
document.write(person.count());

undefined 和 null 的区别。
Undefined 这个值表示变量不含有值。
可以通过将变量的值设置为 null 来清空变量。

js 声明变量类型,可以通过new 的方式。
var carname=new String;
var x= new Number;
var y= new Boolean;
var cars= new Array;
var person= new Object;

//定义函数运用:

<button onclick="myFunction('Harry Potter','Wizard')">点击这里</button>
<button onclick="myFunction('Bob','Builder')">点击这里</button>
<script>
function myFunction(name,job)
{
alert("Welcome " + name + ", the " + job);
}
</script>

JavaScript 变量的生命期从它们被声明的时间开始。
局部变量会在函数运行以后被删除。
全局变量会在页面关闭后被删除。

js 事件基础
onchange HTML 元素改变
onclick 用户点击 HTML 元素
onmouseover 用户在一个HTML元素上移动鼠标
onmouseout 用户从一个HTML元素上移开鼠标
onkeydown 用户按下键盘按键
onload 浏览器已完成页面的加载

字符串的索引从 0 开始,这意味着第一个字符索引值为 [0],第二个为 [1], 以此类推。
你可以在字符串中使用引号,字符串中的引号不要与字符串的引号相同:

js值和类型等于用=== 值等于==

//for in 的用法:
function myFunction(){
var x;
var txt="";
var person={fname:"Bill",lname:"Gates",age:56};
for (x in person){
txt=txt + person[x];
}
document.getElementById("demo").innerHTML=txt;
}// BillGates56


//js 常用的方法:

typeof "john" + "<br>" +
typeof 3.14 + "<br>" +
typeof false + "<br>" +
typeof [1,2,3,4] + "<br>" +//返回object
typeof {name:'john', age:34};//返回object
typeof function () {} // 返回 function

typeof 检测类型 在 jq 中 是$.typeof()。需要注意的是null检测出来的也是 object 对象 ,可以给对象设null 来清空对象。也可以给对象来设 undefined 检测类型为undefined。

null 和 undefined 的区别;

typeof undefined // undefined
typeof null // object
null === undefined // false
null == undefined // true
// 当我们取出相同的object 对象时候。无法判断类型。可以通过 constructor 来 获取他们的构造方法;
"John".constructor // 返回函数 String() { [native code] }
(3.14).constructor // 返回函数 Number() { [native code] }
false.constructor // 返回函数 Boolean() { [native code] }
[1,2,3,4].constructor // 返回函数 Array() { [native code] }
{name:'John', age:34}.constructor // 返回函数 Object() { [native code] }
new Date().constructor // 返回函数 Date() { [native code] }
function () {}.constructor // 返回函数 Function(){ [native code] }
Date 方法 toString() 也有相同的效果。 类型转换。

方法 描述
getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。
getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。
getFullYear() 从 Date 对象以四位数字返回年份。
getHours() 返回 Date 对象的小时 (0 ~ 23)。
getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)。
getMinutes() 返回 Date 对象的分钟 (0 ~ 59)。
getMonth() 从 Date 对象返回月份 (0 ~ 11)。
getSeconds() 返回 Date 对象的秒数 (0 ~ 59)。
getTime() 返回 1970 年 1 月 1 日至今的毫秒数。

var y = "John"; // y 是一个字符串
var x = + y; // x 是一个数字 (NaN)
全局方法 Number() 可将布尔值转换为数字。
Number(false) // 返回 0
Number(true) // 返回 1
d = new Date();
d.getTime()

当 JavaScript 尝试操作一个 "错误" 的数据类型时,会自动转换为 "正确" 的数据类型。

js 正则表达式:search() 方法 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。
replace() 方法 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。 用后面的替换前面的

/w3cschool/i 是一个正则表达式。
w3cschool 是一个模式 (用于检索)。
i 是一个修饰符 (搜索不区分大小写)。

使用 RegExp 对象
在 JavaScript 中,RegExp 对象是一个预定义了属性和方法的正则表达式对象。
patt1.test("The best things in life are free")
test() 方法表示检测 RegExp 对象中是否含有一某一个正则表达式匹配对象。
exec() 方法。返回正在匹配的正则表达式。

try{
adddlert("Welcome guest!");

}catch(err){
txt="本页有一个错误。\n\n";
txt+="错误描述:" + err.message + "\n\n";
txt+="点击确定继续。\n\n";
alert(txt);
}
try{
var x=document.getElementById("demo").value;
if(x=="") throw "值为空";
if(isNaN(x)) throw "不是数字";
if(x>10) throw "太大";
if(x<5) throw "太小";
}
catch(err){
var y=document.getElementById("mess");
y.innerHTML="错误:" + err + "。";
}

字符串断行需要使用反斜杠(\),如下所示:
在每个代码块中 JavaScript 不会创建一个新的作用域,一般各个代码块的作用域都是全局的。onsubmit="return validateForm()" return表示需要验证这个函数的返回值,只有当返回值为true的时候才提交表单
<div>
<form name="myForm" action="www" onsubmit="return validateForm()" method="post">
姓: <input type="text" name="fname">
<input type="submit" value="提交">
</form>
</div>
function validateForm(){
var x = document.forms["myForm"]["fname"].value;
alert(x);
if(x==null || x==""){
alert("姓名必须填")
return false;
}
}
//验证邮箱
function validateForm(){

var x = document.forms["myForm"]["email"].value;
var at = x.indexOf("@");
var dotpos = x.lastIndexOf(".");
alert(dotpos);
alert(x.length);
if(at<1||dotpos<at+2||dotpos+2>=x.length){
alert("不是一个有效的 e-mail 地址");
return false;
}
}
isNaN() 函数用于检查其参数是否是非数字值。
//奖json字符串 对象转换成js 对象

JSON.parse() 用于将一个 JSON 字符串转换为 JavaScript 对象。
JSON.stringify() 用于将 JavaScript 值转换为 JSON 字符串。
<script>
var text = '{"employees":[' +
'{"firstName":"John","lastName":"Doe" },' +
'{"firstName":"Anna","lastName":"Smith" },' +
'{"firstName":"Peter","lastName":"Jones" }]}';
obj = JSON.parse(text);
document.getElementById("demo").innerHTML =
obj.employees[1].firstName + " " + obj.employees[1].lastName;
</script>

javascript:void(0) 中最关键的是 void 关键字, void 是 JavaScript 中非常重要的关键字,该操作符指定要计算一个表达式但是不返回值。href="#"与href="javascript:void(0)"的区别
# 包含了一个位置信息,默认的锚是#top 也就是网页的上端。
而javascript:void(0), 仅仅表示一个死链接。
在页面很长的时候会使用 # 来定位页面的具体位置,格式为:# + id。
如果你要定义一个死链接请使用 javascript:void(0)
addEventListener() 方法用于向指定元素添加事件句柄。
addEventListener() 方法添加的事件句柄不会覆盖已存在的事件句柄。
removeEventListener() 方法 移除监听事件,addEventListener() 添加监听事件 注意事件冒泡。

事件冒泡是 事件有最内部到最外部 依次执行。 事件捕获是最外部到最内层的依次执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值