Loading

Asp.net core 少走弯路系列教程(四)JavaScript 学习

前言

新人学习成本很高,网络上太多的名词和框架,全部学习会浪费大量的时间和精力。

新手缺乏学习内容的辨别能力,本系列文章为新手过滤掉不适合的学习内容(比如多线程等等),让新手少走弯路直通罗马。

作者认为新人应该先打好基础,不要直接学习框架,例如先掌握 SQL 再使用 EFCore 框架。

作者只传授数年内不会变化的知识,让新手学习快速进入跑道受益终身。

分享使我快乐,请务必转发给同学,朋友,让大家都少走一些弯路!!


W3C 是一群大佬制定的 WEB 标准规范,包括 HTML/CSS/JavaScript、HTTP协议等等。所有厂商遵循行业标准,比如前端的浏览器(Chrome/IE/Firefox),后端的WEB服务器(Nginx/Apache/IIS)。(思考:如果 IE浏览器 只能访问 IIS 服务器?)

我们基于 WEB 之上的码农,只需要学习好这些标准知识,就可以在任何编程语言下通用,这些知识未来几十年都不过时。

W3C 虽然标准,但也不是每项技术都值得新人学习(例如 XHTML/XSL),对于新手而言,只推荐学习 HTML/CSS/JavaScript、HTTP协议


什么是 JavaScript

JavaScript 是互联网上最流行的脚本语言,这门语言可用于 HTML 和 web,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。

HTML 中的 Javascript 脚本代码必须位于 <script> 与 </script> 标签之间。

<script>
alert("我的第一个 JavaScript");
</script>

Chrome 浏览器中可以通过按下 F12 按钮打开开发者工具。我们可以在 Console 窗口调试 JavaScript代码,如下图:


JavaScript 显示数据

  • 使用 alert() 弹出警告框。
  • 使用 innerHTML 写入到 HTML 元素。
  • 使用 console.log() 写入到浏览器的控制台。
<script>
alert(5 + 6);
</script>
<p id="demo">我的第一个段落</p>

<script>
document.getElementById("demo").innerHTML = "段落已修改。";
</script>
<script>
a = 5;
b = 6;
c = a + b;
console.log(c);
</script>

JavaScript 语法

  • 值类型:
    • 数字:3.14、1001
    • 字符串:'string1'、"string2"
    • 布尔:true, false
    • 空:null
    • 未定义:undefined
  • 引用类型:
    • 数组:[40, 100, 1]
    • 对象:
    • 函数:function myFunction(a, b)
    • 日期:Date
    • 正则:RegExp
  • 变量:var x = 5
  • 算术运算符:= + - * / % ++ --
  • 赋值运算符:= += -= *= /= %=
  • 比较运算符:== != < > <= >=
  • 逻辑运算符:&& || !
  • 三元表达式:true ? 1 : 0

javascript 语句用分号分隔,对大小写是敏感,浏览器按照编写顺序依次执行每条语句。

var x = 5 + 6;
var y = x * 10;
// 这里是注释

JavaScript 可以分批地组合起来。代码块以左花括号开始,以右花括号结束。

JavaScript 拥有动态类型。这意味着相同的变量可用作不同的类型:

var x;               // x 为 undefined
var x = 5;           // 现在 x 为数字
var x = "John";      // 现在 x 为字符串

变量的数据类型可以使用 typeof 操作符来查看:

typeof "John"                // 返回 string
typeof 3.14                  // 返回 number
typeof false                 // 返回 boolean
typeof [1,2,3,4]             // 返回 object
typeof {name:'John', age:34} // 返回 object

JavaScript 对象由花括号分隔。在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义:

var person = {firstname:"John", lastname:"Doe", id:5566, method1: function() { return "..."; }};
var name1 = person.firstname; //访问方式1
var name2 = person["lastname"]; //访问方式2
var callMethod1 = person.method1(); //访问对象的方法

JavaScript 条件语句:

if (time < 20)
{
    当条件为 true 时执行的代码
}


if (time < 20)
{
    当条件为 true 时执行的代码
}
else
{
    当条件不为 true 时执行的代码
}


if (time < 20)
{
    当条件 1 为 true 时执行的代码
}
else if (time < 50)
{
    当条件 2 为 true 时执行的代码
}
else
{
  当条件 1 和 条件 2 都不为 true 时执行的代码
}


var x = "";
var d = new Date().getDay(); 
switch (d) 
{ 
  case 0:x="今天是星期日"; break; 
  case 1:x="今天是星期一"; break; 
  case 2:x="今天是星期二"; break; 
  case 3:x="今天是星期三"; break; 
  case 4:x="今天是星期四"; break; 
  case 5:x="今天是星期五"; break; 
  case 6:x="今天是星期六"; break;
  default: x="未知"; break;
}
alert(x);

JavaScript 循环语句:

var cars= ['小车1', '小车2', '小车3'];
for (var i=0;i<cars.length;i++)
{ 
    console.log(cars[i]);
}
//小车1
//小车2
//小车3


var objs = {id: 100, name: 'name1', lastname: 'name2'};
foreach (var key in objs)
{
    console.log(key + '=' + objs[key]);
}
//id=100
//name=name1
//lastname=name2


var a = 0;
while (a < cars.length)
{
    console.log(cars[i]);
    a++;
}
//小车1
//小车2
//小车3

JavaScript 函数是包裹在花括号中的代码块,前面使用了关键词 function:

function myFunction(arg1, arg2)
{
    return arg1 + arg2;
}
alert(myFunction(1, 2));

var func = myFunction;
alert(func(1, 2));

//闭包
var a = 0; //全局变量
(function() {
    var a = 0; //局部变量,和上面的 a 不是一个引用
})();

JavaScript HTML 事件:

<input type="button" onclick="alert(111)">
事件 说明
onchange HTML 元素改变
onclick 用户点击 HTML 元素
onmouseover 鼠标指针移动到指定的元素上时发生
onmouseout 用户从一个 HTML 元素上移开鼠标时发生
onkeydown 用户按下键盘按键

JavaScript 字符串方法:

var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
console.log(txt.length);
console.log(txt.substr(0, 10));
属性或方法 说明
length 返回字符串的长度
charAt() 返回指定索引位置的字符
charCodeAt() 返回指定索引位置字符的 Unicode 值
concat() 连接两个或多个字符串,返回连接后的字符串
fromCharCode() 将 Unicode 转换为字符串
indexOf() 返回字符串中检索指定字符第一次出现的位置
lastIndexOf() 返回字符串中检索指定字符最后一次出现的位置
localeCompare() 用本地特定的顺序来比较两个字符串
match() 找到一个或多个正则表达式的匹配
replace() 替换与正则表达式匹配的子串
search() 检索与正则表达式相匹配的值
slice() 提取字符串的片断,并在新的字符串中返回被提取的部分
split() 把字符串分割为子字符串数组
substr() 从起始索引号提取字符串中指定数目的字符
substring() 提取字符串中两个指定的索引号之间的字符
toLocaleLowerCase() 根据主机的语言环境把字符串转换为小写,只有几种语言(如土耳其语)具有地方特有的大小写映射
toLocaleUpperCase() 根据主机的语言环境把字符串转换为大写,只有几种语言(如土耳其语)具有地方特有的大小写映射
toLowerCase() 把字符串转换为小写
toString() 返回字符串对象值
toUpperCase() 把字符串转换为大写
trim() 移除字符串首尾空白
valueOf() 返回某个字符串对象的原始值

转换为字符串类型:String(123)

转换为数字类型:Number('123') 或者 parseFloat('123') 或者 parseInt('123') 或者 +'123'


JavaScript 表单验证

<script>
function validateForm() {
    var x = document.forms["myForm"].fname.value;
    if (x == null || x == "") {
        alert("需要输入名字。");
        return false;
    }
}
</script>

<form name="myForm" action="demo_form.php" onsubmit="return validateForm()" method="post">
名字: <input type="text" name="fname">
<input type="submit" value="提交">
</form>

JavaScript 对象可以随意设置属性,或者方法,包括 HTML dom 对象:

var form = document.forms['myForm'];
form.a1 = 0;
form.a2 = function() {
    alert(form.a1++);
};
form.a2(); // 或者 form['a2']();

form.onsubmit = function() {
    var x = form.fname;
    if (x == null || x == "") {
        alert("需要输入名字。");
        return false;
    }
};

JavaScript JSON

JSON 是用于存储和传输数据的格式,通常用于服务端向网页传递数据。

var json = {
  "sites":[
    {"name":"Runoob", "url":"www.runoob.com"}, 
    {"name":"Google", "url":"www.google.com"},
    {"name":"Taobao", "url":"www.taobao.com"}
  ]
};

console.log(json.sites[1].name); //Google
方法 说明
JSON.parse(string) 用于将一个 JSON 字符串转换为 JavaScript 对象。
JSON.stringify(object) 用于将 JavaScript 对象转换为 JSON 字符串。

JQuery

<head>
<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js">
</head>

用户点击按钮后,所有 <p> 元素都隐藏:

<h2>这是一个标题</h2>
<p>这是一个段落。</p>
<p>这是另一个段落。</p>
<input type="inputName" value="name01'>
<button id="button1" class="button_class1">点我</button>

<script>
$("button").click(function(){
    $("p").hide();
});
</script>

$('#button1') 根据 id 属性选择,对应 document.getElementById('button1')

$('.button_class1') 根据 class 属性选择


AJAX

$.get('/WeatherForecast/Select_table02', function (data, status) {
    alert("数据: " + data + "\n状态: " + status);
});

$("button1").click(function(){
    $.post("/WeatherForecast/Insert_table02",
    {
        name:$('#inputName').val()
    },
    function(data, status){
        alert("数据: " + data + "\n状态: " + status);
    });
});

JavaScript 调试

浏览器启用调试工具一般是按下 F12 键,并在调试菜单中选择 "Console" 。

如果浏览器支持调试,你可以使用 console.log() 方法在调试窗口上打印 JavaScript 值:

a = 5;
b = 6;
c = a + b;
console.log(c);

debugger 关键字用于停止执行 JavaScript,并调用调试:

<div id="demo"></div>

<script>
var x = 15 * 5;
debugger;
document.getElementbyId("demo").innerHTML = x;
</script>
参考:https://www.runoob.com

HTML 内容体系还有很多,但是对新手而已学到这里算入门了,千万不要指望一下能吃下所有内容(贪吃蛇的后果),只有反复的实战才能彻底领会贯通。

到这里,你已经对 JavaScript 有了初步的认识,为我们以后深入打下了基础,下一篇我们学习 HTTP 协议知识!


系列文章导航

原创保护,转载请注明出处:https://www.cnblogs.com/FreeSql/p/16782488.html

posted @ 2022-10-11 20:29  FreeSql  阅读(725)  评论(1编辑  收藏  举报