js语言一

Posted 在于折腾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js语言一相关的知识,希望对你有一定的参考价值。

js语言:
javascript
javascript是脚本语言,是一种轻量级的编程语言。
javascript是可插入html页面的编程代码
JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。

javascript 的引入方式:
1,在<head></head>内的Script标签内写代码
<script>
// 在这里写你的JS代码
</script>
2,引入额外的js文件,及创建一个js文件,在里面写好你的代码
<script src="myscript.js"></script>
javascript 的注释:
// 表示单行注释
/*
多行注释
多行注释
*/

结束符号以分号(;)为结束符

变量声明:
var 关键字声明, 用法:var 变量名, 变量名不能以数字开头
var name = ‘jerry‘;
var age = 38;
或者 let name = ‘jerry‘;
let声明的变量在局部有效 不会影响全局相同的变量名
var声明的变量是作用与全局 直接改变了全局的

注意:
变量名是区分大小写的,
推荐使用驼峰式命名规则,
不要用关键字去做变量名
常量: 用 const来声明常量,一旦声明,其值就不能改变
const PI = 3.1415;

javascript 数据类型:
Javascript拥有动态数据类型
var x;// 此时x就是undefined
var x = 1; // 此时x就是数字
var x = ‘Alex‘ // 此时x就是字符串

数值类型Number(类似整型+浮点型)在这里不区分整型和浮点型,统称数值类型
var a = 12.34;
var a = 20
数值类型中有一种特殊的叫NaN , 它是数值类型,但是表示不是数字
常用方法:
parseInt("123") // 返回123
parseInt("ABC") // 返回NaN,NaN属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。
parseFloat("123.456") // 返回123.456
parseInt("123.456") // 返回的是123 不能识别小数点,所以要转就用parseFloat

字符串类型 String
字符串用单引号,和双引号
单行文本可以用单引号,双引号
多行文本用~ 多行文本~ 即用~ ~ 此~还可以做替换,和%s作用一样
在这里正常的替换用$符,叫模板字符串
字符串的常用方法


        
方法 说明
.length 返回长度
.trim() 移除空白
.trimLeft() 移除左边的空白
.trimRight() 移除右边的空白
.charAt(n) 返回第n个字符,返回的是字符,括号中的n是索引号
.concat(value, ...) 拼接
.indexOf(substring, start) 子序列位置,通过字符获取索引
.substring(from, to) 根据索引获取子序列
.slice(start, end) 切片
.toLowerCase() 小写
.toUpperCase() 大写
.split(delimiter, limit) 分割
拼接字符串一般使用“+”
      string.slice(start, stop)和string.substring(start, stop):

两者的相同点:
如果start等于end,返回空字符串
如果stop参数省略,则取到字符串末
如果某个参数超过string的长度,这个参数会被替换为string的长度

substirng()的特点:
如果 start > stop ,start和stop将被交换
如果参数是负数或者不是数字,将会被0替换

silce()的特点:
如果 start > stop 不会交换两者
如果start小于0,则切割从字符串末尾往前数的第abs(start)个的字符开始(包括该位置的字符)
如果stop小于0,则切割在从字符串末尾往前数的第abs(stop)个字符结束(不包含该位置字符)
        s1 = ‘eghui‘
s1.substring(0,5) 切片不支持负数,所以了解即可
s1.slice(0,-1) 切片推荐使用slice
s2.split(‘|‘,1) 1 表示从切完的结果后拿出一个结果,切完是数组(即python中的列表)
如果数字超出,就拿最多,不会报错

布尔类型:(全部小写)
true 或 false
var a = true;
var b = false;
""(空字符串)、0、null、undefined、NaN都是false。
null和undefined 的区别:
null表示值是空,一般在需要指定或清空一个变量时才会使用,如 name=null; 即它有,但是为空
undefined表示当声明一个变量但未初始化时,该变量的默认值是undefined。
还有就是函数无明确的返回值时,返回的也是undefined。即只声明了变量,没赋值;

重点;null表示变量的值是空(null可以手动清空一个变量的值,使得该变量变为object类型,值为null),
undefined则表示只声明了变量,但还没有赋值。

数组:(相当于python中的列表)
数组对象的作用是:使用单独的变量名来存储一系列的值
var a = [123, "ABC"];
console.log(a[1]); // 输出"ABC"
方法 说明
.length 数组的大小
.push(ele) 尾部追加元素
.pop() 获取尾部的元素
.unshift(ele) 头部插入元素
.shift() 头部移除元素
.slice(start, end) 切片
.reverse() 反转
.join(seq) 将数组元素连接成字符串
.concat(val, ...) 连接数组
.sort() 排序
.forEach() 将数组的每个元素传递给回调函数
.splice() 删除元素,并向数组添加新元素。
.map()

返回一个数组元素调用函数处理后的值的新数组

 




类型查询:
typeof是一个一元运算符(就像++,--,!,- 等一元运算符),不是一个函数,也不是一个语句。
对变量或值调用 typeof 运算符将返回下列值之一:
undefined - 如果变量是 Undefined 类型的
boolean - 如果变量是 Boolean 类型的
number - 如果变量是 Number 类型的
string - 如果变量是 String 类型的
object - 如果变量是一种引用类型或 Null 类型的
运算符
算数运算符
+ - * / % ++ --
var x=10;
var res1=x++;
var res2=++x;
res1;
10
res2;
12
这里由于的x++和++x在出现赋值运算式,
x++会先赋值再进行自增1运算,而++x会先进行自增运算再赋值!
比较运算符
> >= < <= != == === !==

1 == “1” // true 弱等于
1 === "1" // false 强等于
//上面这张情况出现的原因在于JS是一门弱类型语言(会自动转换数据类型),
所以当你用两个等号进行比较时,JS内部会自动先将数值类型的1转换成字符串类型的1再进行比较,
所以我们以后写JS涉及到比较时尽量用三等号来强制限制类型,防止判断错误

逻辑运算符
&& || ! (and or not)
赋值运算符
= += -= *= /=
流程控制:
一,if-else if (条件1){满足条件1的代码块1}
else if(条件2){满足条件2的代码块;}
else{以上条件都不满足的代码块};
案列:
var a = 10;
if (a > 5){
console.log("a > 5");
}else if (a < 5) {
console.log("a < 5");
}else {
console.log("a = 5");
}
二:switch
switch中的case子句通常都会加break语句,
否则程序会继续执行后续case中的语句。

var day = new Date().getDay();
switch (day) {
case 0:
console.log("Sunday");
break;
case 1:
console.log("Monday");
break;
default:
console.log("...")
}
for
for (var i=0;i<10;i++) {
console.log(i);
}

while
var i = 0;
while (i < 10) {
console.log(i);
i++;
}

三元运算
var a = 1;
var b = 2;
var c = a > b ? a : b
这里的三元运算顺序是先写判断条件a>b
如果条件成立就是冒号前面的值a
条件不成立就是冒号后面的值b

三元运算可以嵌套使用
var a=10,b=20;
var x=a>b ?a:(b=="20")?a:b;
x
10
函数:
JavaScript中的函数和Python中的非常类似,只是定义方式有点区别
普通函数定义
function f1() {
console.log("Hello world!");
}

带参数的函数
function f2(a, b) {
console.log(arguments); // 内置的arguments对象
console.log(arguments.length);
console.log(a, b);
}

带返回值的函数
function sum(a, b){
return a + b;
}
sum(1, 2); // 调用函数

匿名函数方式
var sum = function(a, b){
return a + b;
}
sum(1, 2);

// 立即执行函数 书写立即执行的函数,首先先写两个括号()()这样防止书写混乱
(function(a, b){
return a + b;
})(1, 2);

ES6中允许使用“箭头”(=>)定义函数。
var f = v => v;
// 等同于
var f = function(v){
return v;
}
如果箭头函数不需要参数或需要多个参数,就是用圆括号代表参数部分
var f = () => 5;
// 等同于
var f = function(){return 5};

var sum = (num1, num2) => num1 + num2;
// 等同于
var sum = function(num1, num2){
return num1 + num2; //这里的return只能返回一个值,如果想返回多个值需要自己手动给他们包一个数组或对象中
}
函数中的arguments参数
function add(a,b){
console.log(a+b);
console.log(arguments.length);
 console.log(arguments[0]);//arguments相当于将出传入的参数全部包含,这里取得就是第一个元素1
}

add(1,2)
输出为 3 2 1
注意:
函数只能返回一个值,如果要返回多个值,只能将其放在数组或对象中返回。
函数的全局变量和局部变量
局部变量:
在JavaScript函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它(该变量的作用域是函数内部)。只要函数运行完毕,本地变量就会被删除。
全局变量:
在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。
变量生存周期:
JavaScript变量的生命期从它们被声明的时间开始。
局部变量会在函数运行以后被删除。
全局变量会在页面关闭后被删除。
作用域
首先在函数内部查找变量,找不到则到外层函数查找,逐步找到最外层。与python作用域关系查找一模一样!

例子:
var city = "BeiJing";
function f() {
var city = "ShangHai";
function inner(){
var city = "ShenZhen";
console.log(city);
}
inner();
}

f(); //输出结果是?ShenZhen

var city = "BeiJing";
function Bar() {
console.log(city);
}
function f() {
var city = "ShangHai";
return Bar;
}
var ret = f();
ret(); // 打印结果是? BeiJing

var city = "BeiJing";
function f(){
var city = "ShangHai";
function inner(){
console.log(city);
}
return inner;
}
var ret = f();
ret(); ShangHai



以上是关于js语言一的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin将超越Java成为Android开发的第一语言?

Kotlin 将超越 Java 成为 Android 开发的第一语言?

JS是啥意思?

Kotlin 将压倒 Java,成为开发 Android 应用的第一语言

DDD学习笔录——提炼问题域之知识提炼与协作的基本原则

随笔 何雅