值类型之间的相互转化

number | string | boolean
一.转换为boolean=>Boolean(a);
var num = 10;
var s = '123';
var b1 = Boolean(num);
var b2 = Boolean(s);
console.log(b1,b2); //true true
var num1 = 0;
var s1 = "";
var b3 = Boolean(num1);
var b4 = Boolean(s1);
console.log(b3,b4); //false false
// 后期我们会在if分支结构中的判断以及循环中的判断中使用boolean类型,
// 以上两种情况下, 系统都会把非boolean的数据自动转换为boolean
// 0 | "" | null | undefined | NaN => false, 其他都会转化为true 二.转换为数字类型 Number(a) | parseInt(a) | parseFloat(a) | +
①Number(a)
console.log(Number(false), Number(true), true + true);
//0 1 2 var s1 = "123";
var s2 = "3.14";
var s3 = "123abc";
var s4 = "3.14.15";
var s5 = "abc123";
console.log(Number(s1), Number(s2), Number(s3), Number(s4), Number(s5));
// 123 3.14 NaN NaN NaN ②parseInt(a) parseFloat(a)
var s1 = '3.14.15';
var n1 = parseInt(s1);
var n2 = parseFloat(s1);
console.log(n1,n2); //3 3.14 ③ +
//常用转化的字符串一定是一个合法的数字字符串形式(s1, s2)
var s1 = '123';
var s2 = '3.14';
var n1 = +s1;
var n2 = +s2;
console.log(n1,n2); //123 3.14 非数字:NaN // 当一个其他类型转化为数字类型的产物
// 任何判断一个结果是否是NaN => isNaN(运算)
var s = 'abc';
var n = +s;
console.log(isNaN(n)); //true 三.转换为字符串类型 String(a) | .toString() | "" +
var n1 = 123;
var s1 = String(n1);
var s2 = n1.toString();
var s3 = "" + n1;
console.log(s1,s2,s3); //'123' '123' '123'
var s4 = 123..toString();
// ..语法第一个.小数点,第二个.方法的调用 // 弱语言类型
//优点考虑字符串类型
console.log(3 + "5"); // "35"
console.log(3 - "5"); // -2 // 总结:
// 1.最快转化为数字类型 +"123" | +true
// 2.最快转化为字符串形式 "" + 123 | "" + true

运算符

/*
算数运算符:+ - * / % ++ --
赋值运算符:+= -= *= /= %=
比较运算符:> < >= <= == === != !==
逻辑运算符:&& || !
三目运算符:结果 = 条件表达式 ? 结果1 : 结果2;
*/ 一.算数运算符
// js中不区分整形和浮点型, 结果为什么就是什么
var res = 5 / 2; // 2.5 // 任何正整数对n取余 结果为: [0, n-1] // num++ | ++num => num = num + 1; => 自增1
// ++在后先赋值再自增 | ++在前先自增再赋值
var num = 10;
var r1 = ++num;
console.log(r1); // ++num => r1=11 | num++ => r1=10
console.log(num); // 11 二.赋值运算符
x += 10; // => x = x + 10 三.比较运算符
var x = 123;
var y = '123';
console.log(x == y); // 只做值比较 => true
console.log(x === y); // 全等: 值与类型都必须相等 => false 四.逻辑运算符
// 逻辑与: 条件1 && 条件2 => 全为真则真,否则为假
// 逻辑或: 条件1 || 条件2 => 全为假则假,否则为真
// 逻辑非: 非真即假,非假即真 // 逻辑与的短路效果, 条件1为假, 条件2就不会被执行
var a = 10;
var b = 20;
var c = '10';
var res = a === c && b++;
console.log(res,b) //false 20 var res = a == c && b++;//res结果即b的结果,b++先赋值后自增
console.log(res,b) //20,21 // 逻辑或的短路效果, 条件1为真, 条件2就不会被执行
var res = a == c || b++;
console.log(res,b) //true 20 var res = a === c || ++b; //res结果即b的结果,++b先自增后赋值
console.log(res,b) //21 21 五.三目运算符
// 三目运算符:结果 = 条件表达式 ? 结果1 : 结果2;
// 条件满足, 执行:前的结果1, 否则执行:后的结果2
var x = 10;
var y = '10';
var res = x == y ? 'x与y的值相等':'x与y的值不等';
console.log(res) //x与y的值相等

if条件判断

// 三种弹出框
// alert(123); // 普通弹出框
// var res = prompt("请输入:"); // 输入框, 得到输入的字符串内容
// var res = confirm("请选择"); // 确认框, 得到true | false // +做类型转换
var salary = +prompt("请输入工资:");
if (salary > 88888) {
console.log("开始还账!");
salary -= 50000; console.log("开始购物 30000!");
salary -= 30000; // 最少剩8888 if (salary > 10000) {
console.log("旅游!");
} else if (salary > 9000) {
console.log("花200学习!");
salary -= 200;
} else {
console.log("吃土!")
} } else {
console.log("要求提薪");
}
// if可以省略else if, 也可以省略else
// if可以嵌套
// if(条件){ 逻辑体 } else if(条件){ 逻辑体 } else{ 逻辑体 }

循环

// 循环比较
// 1.for: 解决已知循环次数的
// 2.while: 可以解决所有for循环可以解决的问题,也可以解决不知道循环次数但知道结束条件
// 3.do...while: 无论条件是否满足,循环体都会被执行一次
一.for循环
for (循环变量①; 条件表达式②; 循环变量增量③) {
代码块④;
}
eg:
for(var i = 0; i <; i++){
console.log('打气!')
}
//① ②④③ ... ②④③ ② 二.while循环
while (条件表达式) {
代码块;
}
eg:
var j = 0;
while(j < 5){
console.log('打气');
j++;
} 三.do..while 循环
do {
代码块;
} while (条件表达式);
eg:
var k = 0;
do{
console.log('打气!');
k++;
}while(k < 5); // break:结束本层循环
var x = 0;
while(x < 5){ //打印0,1,2
if (x > 2) {
break;
}
console.log(x);
x++;
}
// continue:结束本次循环进入下一次循环
var x = 0;
while(x <){ //打印0,1,3,4
if (x == 2){
x++;
continue;
}
console.log(x);
x++;
}

函数

// js函数的重点: 如何给事件提供功能

// 1.函数的定义
// function 函数名(形参列表) {
// 函数体;
// } // 2.函数的调用
// var res = 函数名(实参列表);
eg:
//fn1();
function fn1() {
console.log('函数fn1')
}
fn1(); //定义前后都可以调用 // 3.函数的参数
// i.个数不需要统一
function fn1(a,b) {
console.log(a,b)
}
fn1(1,2); //1 2
fn1(1); //1 undefined
fn1(1,2,3); //1 2 fn2("abc");
function fn2() { // 不需要参数就不接收, 需要就接收
console.log("自己玩")
}
// ii.可以任意位置具有默认值
function fn3(a,b=1,c,d=2) {
console.log(a,b,c,d);
}
fn3(); //undefined 1 undefined 2
fn3(6); //6 1 undefined 2
fn3(6,8); //6 8 undefined 2
fn3(6,null,8); //6 null 8 2
// iii.通过...语法接收多个值
function fn4(...arr) {
console.log(arr)
}
fn4(); //[]
fn4(1); //[1]
fn4(1,2,3,4); //[1,2,3,4] // 4.返回值讲解
// i.可以空return操作,用来结束函数
function fn5(a) {
if (a == 10){
return;
}
console.log('参数不为10')
}
fn5(10);
// ii.返回值可以为任意js类型数据
function fn6() {
return{
'name':'henry',
'age':25
}
}
var res = fn6();
console.log(res); //{name: "henry", age: 25}
console.log(res.age); //25
// iii.函数最多只能拥有一个返回值
function fn7() {
return 1,true;
}
var res = fn7();
console.log(res) //将最后一个值返回
//解决方案 return[1,true]; // 5.匿名函数: 没有名字的函数, 函数只能在定义的时候自己来调用一次, 之后再也无法被调用
// 匿名函数 自定义
(function () { // 产生了一个局部名称空间(局部作用域), 并且可以随着匿名函数调用完毕, 被回收
var aaa = 1000;
console.log("匿名函数的自调用")
})();

值类型之间的相互转化,运算符,if条件判断,循环,函数的更多相关文章

  1. php类型的相关函数,运算符,条件判断,循环

    类型的相关函数 函数的原型  :函数返回值类型 函数名(参数1类型 参数1,参数2类型 参数2--) 1, 任何一个函数,都要考虑它是否有返回值以及该返回值的类型,如果该函数没有返回值,就用void来 ...

  2. js 类型之间的相互转化

    设置元素对象属性 var img = document.querySelector("img") img.setAttribute("src","ht ...

  3. 表达式树练习实践:C#值类型、引用类型、泛型、集合、调用函数

    目录 表达式树练习实践:C#值类型.引用类型.泛型.集合.调用函数 一,定义变量 二,访问变量/类型的属性字段和方法 1. 访问属性 2. 调用函数 三,实例化引用类型 四,实例化泛型类型于调用 五, ...

  4. python数据类型、输入输出、运算符、条件判断、循环

    变量以及类型 变量:存储程序运行中的数据,变量有3个要素:变量名.变量类型.变量值.python属于弱类型语言,不需要声明变量类型. [root@localhost python]# ipython3 ...

  5. [19/09/16-星期一] Python的运算符和条件判断语句

    一.运算符 (1)算术运算符  + 加法运算符(如果是两个字符串之间进行加法运算,则会进行拼串操作) a = 10 + 5  计算 a = 'hello' + ' ' + 'world' 拼串  - ...

  6. JavaScript的运算符、条件判断、循环、类型转换(9.25 第十一天)

    JS的运算符 加 + 减 - 乘 * 除 / 取余 % 自增 ++ 自减 -- 赋值运算符 a=3 a+=3  a=a=3 a-=3   a=a-3 a*=3  a=a*2 a/=3   a=a/3 ...

  7. 写给.NET开发者的Python教程(三):运算符、条件判断和循环语句

    本节会介绍Python中运算符的用法,以及条件判断和循环语句的使用方法. 运算符 运算符包括算术运算符.赋值运算符.比较运算符.逻辑运算符等内容,大部分用法和C#基本一致,下面我们来看一下: 算数运算 ...

  8. Python 条件判断 循环

    age = 20 if age >= 18: print('your age is', age) print('adult') 根据Python的缩进规则,如果if语句判断是True,就把缩进的 ...

  9. python笔记五(条件判断/循环/break和continue)

    一 条件判断 if <条件判断1>: <执行1> elif <条件判断2>: <执行2> elif <条件判断3>: <执行3> ...

随机推荐

  1. MyBatis基础入门《六》Like模糊查询

    MyBatis基础入门<六>Like模糊查询 描述: 未改动的文件,不再粘贴出来.项目中SQL的xml映射文件重要标签如下: mapper namespace cache 配置给定命令空间 ...

  2. Nginx.代理MySQL

    Nginx.代理MySQL 1. Nginx在安装的时候,需要加上一个参数:--with-stream 即Nginx安装指令为:./configure --prefix=/u01/app/nginx  ...

  3. sqlserver中查询表字段的sql语句

    sqlserver中的表信息字段信息这些东西也是放到系统表中的,以下sql语句用于查询某表的字段信息. select t1.id object_id,t1.name object_name,t2.va ...

  4. 环形数组 最大子段和 dp

    题目链接:https://nanti.jisuanke.com/t/36118 环形数组的连续最大子段和,有两种情况. 1.最大和的这个子段没有包含头尾.所以直接dp[i] = max(dp[i-1] ...

  5. html5-新布局元素header,footer

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  6. Apache+Tomcat+Memcached实现会话保持

    会话保持的三种方式 Session sticky会话绑定:通过在前端调度器的配置中实现统一session发送至同一后发端服务器 Session cluster会话集群:通过配置Tomcat保持所有To ...

  7. FilenameFilter

    Introduction: java.io.FileNameFilter is a interface which is for filtering by filename, if filename ...

  8. redis的优缺点和使用场景

    1. 使用redis有哪些好处? (1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1) (2) 支持丰富数据类型,支持string,li ...

  9. Linux环境变量和本地变量

    每一种编程语言中,我们都会碰到变量的作用域的问题.(比如在函数中定义的变量在函数外不能使用的) BASH 中也有类似的问题,局部变量和环境变量(全局变量). 局部变量是普通的变量,仅在创建它的Shel ...

  10. tensorflow学习4-过拟合-over-fitting

    过拟合: 真实的应用中,并不是让模型尽量模拟训练数据的行为,而是希望训练数据对未知做出判断. 模型过于复杂后,模型会积极每一个噪声的部分,而不是学习数据中的通用 趋势.当一个模型的参数比训练数据还要多 ...