精华内容
下载资源
问答
  • 我打算的是通过属性判断按钮是否被选中,设置其属性为true和false,但是奇怪的发现,当属性为空,切换到true,在切换到false,之后一直就为false了,非常奇怪。 后来debuger发现,原来是数据类型出现的错误。 html...

    前言:

    在写一个按钮切换效果时,遇到了一个数据类型问题。我打算的是通过属性判断按钮是否被选中,设置其属性为true和false,但是奇怪的发现,当属性为空,切换到true,在切换到false,之后一直就为false了,非常奇怪。

    后来debuger发现,原来是数据类型出现的错误。

    html标签内存的都是字符串,所以使用getAttribute读出来的就是字符串

    整体流程是

    • 读出字符串为'',设置其属性为!''等于!0等于true

    • 读出字符串为'true',设置属性为!'true'等于!1等于false

    • 之后读出字符串为'false',设置属性为!'false'等于!1等于false

    其中要注意的是,在自动转换比较时,所有数据隐式转换时更偏向转换为数字number类型进行比较。

     

    解决方法:

    将字符串转换后再进行非运算

    使用方法:

    JSON.parse(checked)

    注意:JSON.parse()不能接受空字串

    完整代码如下

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>IE9+兼容性更高的switch按钮</title>
      <style>
        .switchBtn {
          position: relative;
          display: inline-block;
          width: 4rem;
          height: 2rem;
          border-radius: 2rem;
          box-shadow: inset 0 0 5px rgb(0, 0, 0, .2);
          background: #c6c6c6;
          transition: .5s
        }
        .switchBtn::before {
          content: '';
          position: absolute;
          top: 0;
          left: 0;
          width: 2rem;
          height: 2rem;
          border-radius: 50%;
          box-shadow: 0 2px 5px rgb(0, 0, 0, .2);
          background: #fff;
          transition: .5s
        }
        .switchBtn[data-checked="true"] {
          background: #03a9f4;
        }
        .switchBtn[data-checked="true"]::before {
          left: 2rem;
        }
      </style>
    </head>
    <body>
      <span class="switchBtn" data-checked></span>
      <script>
        var switchBtn = document.querySelector('.switchBtn')
        switchBtn.onclick = function(e) {
          var checked = switchBtn.getAttribute('data-checked')
          if(checked === '') {
            checked = false
          }
          switchBtn.setAttribute('data-checked', JSON.parse(checked))
        }
      </script>
    </body>
    </html>

     

     

     

     

    展开全文
  • 本文介绍如何在使用C#开发程序时,将一个字符串String变量的值转换为一个整型Int变量。 比如,我们在C#中定义一个字符串变量,用它来获取一个xml中的值。小编这里并不是故意要用一个字符串去获取xml节点的值,而是...
  • 将js中的对象、符号转换成整型数字的神器。java中无此操作。 ~是js里的按位取反操作符,~~就是执行两次按位取反,其实就是保持原值,但是注意虽然是原值,但是对布尔型变量执行这个操作,会转化相应的数值型变量...

    将js中的对象、符号转换成整型数字的神器。java中无此操作。

    ~是js里的按位取反操作符,~~就是执行两次按位取反,其实就是保持原值,但是注意虽然是原值,但是对布尔型变量执行这个操作,会转化成相应的数值型变量,也就是 ~~true === 1,~~false === 0。

    将boolean、数组、undefined、null、浮点数、字符串都可转换成整型数字。

     

    ~~true == 1
    ~~false == 0
    ~~"" == 0
    ~~[] == 0
    ~~[3,false,true,"9.9"] == 0
    ~~undefined ==0
    ~~!undefined == 1
    ~~null == 0
    ~~!null == 1
    ~~3.02 == 3 
     ~~"5" == 5

     

    展开全文
  • 例如在mongodb中有数据库(taobao),表(product),表中有一deal字段本来存储的是字符串类型,现在要把deal中的值改为整型。 方法是在mongodb(robo)中运行 db.getCollection('product').find({'deal' : { $type ...

    例如在mongodb中有数据库(taobao),表(product),表中有一deal字段本来存储的是字符串类型,现在要把deal中的值改为整型。

    方法是在mongodb(robo)中运行

    db.getCollection('product').find({'deal' : { $type : 2 }}).forEach(function(x) {
        x.deal = NumberInt(x.deal);
        db.getCollection('product').save(x);
    })

    解释:这里的type:2 指的是原来的deal字段类型是2,也就是字符串类型。

    字段类型编号:

     

    • 1 Double 浮点型 
      2 String UTF-8字符串都可表示为字符串类型的数据 
      3 Object 对象,嵌套另外的文档 
      4 Array 值的集合或者列表可以表示成数组 
      5 Binary data 二进制 
      7 Object id 对象id是文档的12字节的唯一 ID 系统默认会自动生成 
      8 Boolean 布尔类型有两个值TRUE和FALSE 
      9 Date 日期类型存储的是从标准纪元开始的毫秒数。不存储时区 
      10 Null 用于表示空值或者不存在的字段 
      11 Regular expression 采用js 的正则表达式语法 
      13 JavaScript code 可以存放Javasript 代码 
      14 Symbol 符号 
      15 JavaScript code with scope 
      16 32-bit integer 32位整数类型 
      17 Timestamp 特殊语义的时间戳数据类型 
      18 64-bit integer 64位整数类型

    展开全文
  • import java.util.Arrays; /** * 时间计算工具类 * * @author frankiegao123 */ public class Time { ... * 时间字段常量,表示“秒” ... public final static int SECOND = 0;... * 时间字段常量,表示“分”
    import java.util.Arrays;
    
    /**
     * 时间计算工具类
     *
     * @author frankiegao123
     */
    public class Time {
    
        /**
         * 时间字段常量,表示“秒”
         */
        public final static int SECOND = 0;
    
        /**
         * 时间字段常量,表示“分”
         */
        public final static int MINUTE = 1;
    
        /**
         * 时间字段常量,表示“时”
         */
        public final static int HOUR = 2;
    
        /**
         * 时间字段常量,表示“天”
         */
        public final static int DAY = 3;
    
        /**
         * 各常量允许的最大值
         */
        private final int[] maxFields = { 59, 59, 23, Integer.MAX_VALUE - 1 };
    
        /**
         * 各常量允许的最小值
         */
        private final int[] minFields = { 0, 0, 0, Integer.MIN_VALUE };
    
        /**
         * 默认的字符串格式时间分隔符
         */
        private String timeSeparator = ":";
    
        /**
         * 时间数据容器
         */
        private int[] fields = new int[4];
    
        /**
         * 无参构造,将各字段置为 0
         */
        public Time() {
            this(0, 0, 0, 0);
        }
    
        /**
         * 使用时、分构造一个时间
         * @param hour      小时
         * @param minute    分钟
         */
        public Time(int hour, int minute) {
            this(0, hour, minute, 0);
        }
    
        /**
         * 使用时、分、秒构造一个时间
         * @param hour      小时
         * @param minute    分钟
         * @param second         */
        public Time(int hour, int minute, int second) {
            this(0, hour, minute, second);
        }
    
        /**
         * 使用一个字符串构造时间<br/>
         * Time time = new Time("14:22:23");
         * @param time      字符串格式的时间,默认采用“:”作为分隔符
         */
        public Time(String time) {
            this(time, null);
        }
    
        /**
         * 使用天、时、分、秒构造时间,进行全字符的构造
         * @param day            * @param hour           * @param minute         * @param second         */
        public Time(int day, int hour, int minute, int second) {
            initialize(day, hour, minute, second);
        }
    
        /**
         * 使用一个字符串构造时间,指定分隔符<br/>
         * Time time = new Time("14-22-23", "-");
         * @param time      字符串格式的时间
         */
        public Time(String time, String timeSeparator) {
            if(timeSeparator != null) {
                setTimeSeparator(timeSeparator);
            }
            parseTime(time);
        }
    
        /**
         * 设置时间字段的值
         * @param field     时间字段常量
         * @param value     时间字段的值
         */
        public void set(int field, int value) {
            if(value < minFields[field]) {
                throw new IllegalArgumentException(value + ", time value must be positive.");
            }
            fields[field] = value % (maxFields[field] + 1);
            // 进行进位计算
            int carry = value / (maxFields[field] + 1);
            if(carry > 0) {
                int upFieldValue = get(field + 1);
                set(field + 1, upFieldValue + carry);
            }
        }
    
        /**
         * 获得时间字段的值
         * @param field     时间字段常量
         * @return          该时间字段的值
         */
        public int get(int field) {
            if(field < 0 || field > fields.length - 1) {
                throw new IllegalArgumentException(field + ", field value is error.");
            }
            return fields[field];
        }
    
        /**
         * 将时间进行“加”运算,即加上一个时间
         * @param time      需要加的时间
         * @return          运算后的时间
         */
        public Time addTime(Time time) {
            Time result = new Time();
            int up = 0;     // 进位标志
            for (int i = 0; i < fields.length; i++) {
                int sum = fields[i] + time.fields[i] + up;
                up = sum / (maxFields[i] + 1);
                result.fields[i] = sum % (maxFields[i] + 1);
            }
            return result;
        }
    
        /**
         * 将时间进行“减”运算,即减去一个时间
         * @param time      需要减的时间
         * @return          运算后的时间
         */
        public Time subtractTime(Time time) {
            Time result = new Time();
            int down = 0;       // 退位标志
            for (int i = 0, k = fields.length - 1; i < k; i++) {
                int difference = fields[i] + down;
                if (difference >= time.fields[i]) {
                    difference -= time.fields[i];
                    down = 0;
                } else {
                    difference += maxFields[i] + 1 - time.fields[i];
                    down = -1;
                }
                result.fields[i] = difference;
            }
            result.fields[DAY] = fields[DAY] - time.fields[DAY] + down;
            return result;
        }
    
        /**
         * 获得时间字段的分隔符
         * @return
         */
        public String getTimeSeparator() {
            return timeSeparator;
        }
    
        /**
         * 设置时间字段的分隔符(用于字符串格式的时间)
         * @param timeSeparator     分隔符字符串
         */
        public void setTimeSeparator(String timeSeparator) {
            this.timeSeparator = timeSeparator;
        }
    
        private void initialize(int day, int hour, int minute, int second) {
            set(DAY, day);
            set(HOUR, hour);
            set(MINUTE, minute);
            set(SECOND, second);
        }
    
        private void parseTime(String time) {
            if(time == null) {
                initialize(0, 0, 0, 0);
                return;
            }
            String t = time;
            int field = DAY;
            set(field--, 0);
            int p = -1;
            while((p = t.indexOf(timeSeparator)) > -1) {
                parseTimeField(time, t.substring(0, p), field--);
                t = t.substring(p + timeSeparator.length());
            }
            parseTimeField(time, t, field--);
        }
    
        private void parseTimeField(String time, String t, int field) {
            if(field < SECOND || t.length() < 1) {
                parseTimeException(time);
            }
            char[] chs = t.toCharArray();
            int n = 0;
            for(int i = 0; i < chs.length; i++) {
                if(chs[i] <= ' ') {
                    continue;
                }
                if(chs[i] >= '0' && chs[i] <= '9') {
                    n = n * 10 + chs[i] - '0';
                    continue;
                }
                parseTimeException(time);
            }
            set(field, n);
        }
    
        private void parseTimeException(String time) {
            throw new IllegalArgumentException(time + ", time format error, HH"
                    + this.timeSeparator + "mm" + this.timeSeparator + "ss");
        }
    
        public String toString() {
            StringBuilder sb = new StringBuilder(16);
            //天
            //sb.append(fields[DAY]).append(',').append(' ');
            buildString(sb, HOUR).append(timeSeparator);
            buildString(sb, MINUTE).append(timeSeparator);
            buildString(sb, SECOND);
            return sb.toString();
        }
    
        private StringBuilder buildString(StringBuilder sb, int field) {
            if(fields[field] < 10) {
                sb.append('0');
            }
            return sb.append(fields[field]);
        }
    
        public int hashCode() {
            final int PRIME = 31;
            int result = 1;
            result = PRIME * result + Arrays.hashCode(fields);
            return result;
        }
    
        public boolean equals(Object obj) {
            if (this == obj)
                return true;
            if (obj == null)
                return false;
            if (getClass() != obj.getClass())
                return false;
            final Time other = (Time) obj;
            if (!Arrays.equals(fields, other.fields)) {
                return false;
            }
            return true;
        }
    
    展开全文
  • 字符串转换整形数字

    千次阅读 2015-04-15 16:54:44
    题目:输入一个表示整数的字符串,把该字符串转换成整数并输出。例如输入字符串"345",则输出整数345。分析:这道题尽管不是很难,学过C/C++语言一般都能实现基本功能,但不同程序员就这道题写出的代码有很大区别,...
  • 字符串转换成整数(3种方法)

    千次阅读 2020-10-23 16:41:16
    请你来实现一个 atoi 函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下: 如果第一个非空字符为正或者负号时,则将该符号...
  • c#将字符串转换整型

    千次阅读 2012-10-07 18:11:09
    1.强制类型转换 (int)浮点类型或者其它精度的整型 2.适合于任何类型转换整型 string i = Console.ReadLine();//从键盘读入一个字符串,赋给变量x int x = Convert.ToInt32(i); //将字符串i转换整型 ...
  • 自动转换类型+强制转换+字符型与整型转换+算术运算符+逻辑运算符+位运算符 using System; namespace ConsoleApp1 { class Program { static void Main(string[] args) { /* //自动类型转换 sbyte num0 = ...
  • # ###Number 强制类型转换 var1 = 5 var2 = 4.85 var3 = True var3_2 = False var4 = 3+9j var5 = "888777" ...#(1) int 强制转换整型 res = int(var1) print(res) res = int(var2) print(re...
  • Java整数转换成字符

    千次阅读 2015-09-16 10:46:19
    Java中提供了三种整数转换成字符串的方式,大家都很熟悉: 1. String s = String.valueOf(i);   2. String s = Integer.toString(i);   3. String s = "" + i;  注:Double, Float, Long 转字串的方法...
  • numpy将bool值转换成数值

    万次阅读 2019-02-11 10:47:01
    用np.array().astype(int)  label = np.array([0, 1, 0]) predict_label = np.array([1, 0, 0]) false_num = np.array(label != predict_label).astype(int) print(false_num) # [1 1 0]  
  • 1.false; 2.整数0或者浮点数0.0; 3.字符串'0'或空字符串' '; 4.没有成员的数组; 5.null; 其他的都将被转换成布尔类型True; 转载于:https://www.cnblogs.com/omak/p/11445237.html...
  • 大体思路: 示例,调用Integer类的parseInt()方法; public static void method() { String str = "-255";...默认十进制,也可以手动传其他进制来规定要把str字符串转换成什么进制的数字; public s...
  • 将输入的字符串转换成整形
  • 字符串与整型、浮点型数据之间的转换PAT 1054(求平均值)题解类型转换函数字符串转化为其他类型其他类型转化为字符串       最近遇到的一道题。其中用到了将字符串转化为float类型,在...
  • c++-字符串转化为整形(atoi)

    千次阅读 2017-08-23 12:16:40
    c++-字符串转化为整形(atoi)atoi为库函数,坐在的头文件为#include //原型:int atoi(char *str); //用法,atoi传入的参数为字符指针,而并非string类型 #include #include int main(int argc, char *argv[])...
  • 将一个整形转换成字符串形式

    千次阅读 2013-09-05 21:57:34
    假如给你一个题目,将一个整型转换成它的字符串形式, 你会怎么做,你会这样做,new Integer(432).toString(), 或者Integer.toString(432),再或者Integer.toString(432,10) 这几个方法都能办到,但是他们是怎么...
  • java对象转换成json

    千次阅读 2015-10-13 12:11:07
    1. List集合转换成json代码 List list = new ArrayList(); list.add( "first" ); list.add( "second" ); JSONArray jsonArray2 = JSONArray.fromObject( list ); ...
  • 如何把一个字符串转换成整数

    千次阅读 2020-02-26 12:27:36
    请你来实现一个 atoi 函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面...
  • python-整形转换

    千次阅读 2019-01-24 16:38:33
    将字符串转换为数字 num="a" a=int(num,16) print(a) num="123" a=int(num) print(type(a),a) bit_length #当前数字的二进制位 a=8 print(a.bit_length())        ....
  • 整型转换为布尔类型 这个思路还是基于C语言上的非0整数真值为true(1),其余为false(0).容易联想到定义:boolean f=a!=0; 将布尔类型转换为整数类型 这个就简单了,用一个三目条件运算就行。 下面是代码。网上别...
  • int类型的整数转换成汉字 一、源代码:IntegerNumberToChinese.java 1 package cn.com.zfc.example; 2 3 import java.util.Scanner; 4 5 /** 6 * 将一个int类型的整数转换成汉字 7 * 8 * @...
  • python的数据类型转换

    2019-07-13 11:40:30
    数据类型转换 将数据由当前类型变化为其他类型的操作就是数据类型转换。数据类型转换分为两类,分别是自动数据类型转换 和 强制数据类型转换。 自动转换(隐式转换) 自动转换时程序根据运算要求进行的转换,不许要...
  • 三、字符串和整形的互相转换 1、String------------->int (常见的两种方法) String s = "1"; 1) int i = Integer.valueOf(s); System.out.println("整形"+i); 2) int j = Integer.parseInt(s); System.out....
  • 1.转为false的值 undefined; null; 0; -0; NAN; “” //空字符串 false 2.转为true 除了转false的,其他的均为转true
  • python其他数据类型转换成整数

    千次阅读 2020-04-03 12:00:22
    文章目录使用int()实现数据转换自动转型整数到底有多大? 使用int()实现数据转换 浮点型数据直接舍去小数部分。 布尔型True转为1,False转为0。(python中True和False首字母大写) 字符串符合整数格式的,则直接转为...
  • C# 中怎么将string转换成int型

    千次阅读 2021-03-26 15:43:44
    1.通过int.Parse(string类型变量名)实现:  但是使用int.Parse方法实现... Console.WriteLine("转换后的整型数值为:{0}", result); } catch { Console.WriteLine("无法完成转换!"); } 2.通过int.TryParse(string
  • Java实现将数字转换成中文大写

    万次阅读 2019-02-26 16:50:33
     *程序功能:支持将仟亿数字转换成中文数字表示,如(110.12 转换成壹佰壹拾元壹角贰分)  *算法思路:将数字,分成整数部分和小数部分(小数部分四舍五入到两位),分别进行转换,然后将转换后的结果合并后,生成最终...
  • if(0){if(0)//false,判断条件小括号里面要转化为布尔值 console.log(0) } console.log(1)//只输出1 复制代码

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 129,753
精华内容 51,901
关键字:

true转换成整形